Django admin.py 在修改/添加表单界面显示额外字段的方法

时间:2021-05-22

问题描述:

我有个blogextra表继承自blog,现在我想在blog的admin管理change界面显示对应的blogextra字段

解决方法:

可以使用admin.py的inline内联方法

代码:

models.py

from django.db import models# Create your models here.class Blog(models.Model): Name = models.CharField(max_length=350) def __unicode__(self): return str("Name:"+self.Name)class BlogExtra(Blog): NameTwo = models.CharField(max_length=350) NameThree = models.CharField(max_length=350) def __unicode__(self): return str("Name:"+self.Name+" NameTwo:"+self.NameTwo+" NameThree:"+self.NameThree)

admin.py

# conding = UTF-8from django.contrib import adminfrom blogs.models import *class BlogExtraInline(admin.StackedInline): model = BlogExtra fields = ['NameTwo'] #只显示NameTwo这个字段class BlogAdmin(admin.ModelAdmin): list_display = ('id', 'Name') def get_form(self, request, obj=None, **args): defaults = {} if obj is not None: if (len(BlogExtra.objects.filter(id=obj.id)) == 1): self.inlines = [BlogExtraInline] #设置内联 else: self.inlines = [] #如果不是继承,就取消设置 defaults.update(args) return super(BlogAdmin, self).get_form(request, obj, **defaults)admin.site.register(Blog, BlogAdmin)

展示效果:

正常无继承的:

存在继承的(显示额外字段):

以上这篇Django admin.py 在修改/添加表单界面显示额外字段的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章