小編給大家分享一下Django中admin.py如何在修改/添加表單界面顯示額外字段,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的海珠網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!問(wèn)題描述:
我有個(gè)blogextra表繼承自blog,現(xiàn)在我想在blog的admin管理change界面顯示對(duì)應(yīng)的blogextra字段
解決方法:
可以使用admin.py的inline內(nèi)聯(lián)方法
代碼:
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這個(gè)字段 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] #設(shè)置內(nèi)聯(lián) else: self.inlines = [] #如果不是繼承,就取消設(shè)置 defaults.update(args) return super(BlogAdmin, self).get_form(request, obj, **defaults) admin.site.register(Blog, BlogAdmin)
展示效果:
正常無(wú)繼承的:
存在繼承的(顯示額外字段):
以上是“Django中admin.py如何在修改/添加表單界面顯示額外字段”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!