重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小编给大家分享一下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如何在修改/添加表单界面显示额外字段”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!