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

 更新时间:2019年08月22日 10:49:30   作者:小啊小木头   我要评论
今天小编就为大家分享一篇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:""jb51code">
# 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 在修改/添加表单界面显示额外字段的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持澳门金沙网上娱乐。

相关文章

最新评论