django admin 不显示抽象基类字段
Posted
技术标签:
【中文标题】django admin 不显示抽象基类字段【英文标题】:django admin not showing abstract base class fields 【发布时间】:2016-09-11 14:54:06 【问题描述】:我有
class BaseModelMixin(models.Model):
class Meta:
abstract = True
uuid = models.UUIDField(default=uuid4, editable=False, db_index=True)
created_on = models.DateTimeField(default=now, editable=False, blank=True)
updated_on = models.DateTimeField(default=now, editable=False, blank=True)
和
class Something(BaseModelMixin):
whatever = models.TextField(blank=True, null=True)
class SomethingElse(BaseModelMixin):
whoever = models.TextField(blank=True, null=True)
在管理站点上,对于每个Something,我可以看到任何内容,但看不到uuid、created_on 或updated_on。我一定遗漏了一些明显的东西......如果 django 管理员没有自动向我显示这些字段,那将是令人惊讶的。
我绝对想要摘要;我不想要一个额外的表,我希望 uuid、created_on、updated_on 字段位于具体的类表中,它们确实存在。它们只是没有出现在 django 管理站点中。
我做错了什么?
Anoop 的回答部分正确:
class BaseModelMixinAdmin(admin.ModelAdmin):
readonly_fields=('uuid','created_on','updated_on')
还有:
admin.site.register(Something, BaseModelMixinAdmin)
admin.site.register(SomethingElse, BaseModelMixinAdmin)
...这有点烦人,我必须这样做,但是哦,还不错...
【问题讨论】:
editable=False
字段默认不显示。考虑一下***.com/q/3967644/1925257
【参考方案1】:
如果您只想在管理面板中查看不可编辑的字段。在模型管理中使用read only fields
class BaseModelMixinAdmin(admin.ModelAdmin):
readonly_fields=('uuid',)
【讨论】:
以上是关于django admin 不显示抽象基类字段的主要内容,如果未能解决你的问题,请参考以下文章
Django - 后台admin不显示带auto_now, auto_now_add选项的字段
Django后台Admin继承UserAdmin增加用户不显示明文方法
Django admin list_display 不显示模型方法返回项