小编给大家分享一下Django中admin.py如何在修改/添加表单界面显示额外字段,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
问题描述:
我有个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-8
from django.contrib import admin
from 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如何在修改/添加表单界面显示额外字段”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。