我的项目有多个模型和模型的自定义管理页面。所有模型都继承自BaseModel
。
我在BaseModel
中添加了2个新字段。鉴于所有模型都继承自BaseModel
,因此他们也获得了这两个新字段,现在它们显示在管理页面中。但是我不希望这两个字段显示在管理页面中。
要从管理页面中排除字段,我们通常在管理类中使用excludes = [fields to be excluded]
。
是否有一种无需接触所有管理员课程即可实现这一目标的方法?
答案 0 :(得分:1)
使用editable字段选项。
Field.editable
如果为False,则该字段将不会显示在管理员或任何其他ModelForm中。在模型验证期间也将跳过它们。默认值为True。
解决方案是为这两个字段都设置editable=False
。
类似这样的东西:
class BaseModel(models.Model):
...
new_field_1 = models.IntegerField( # Assumed that it is an integer field.
editable=False,
...
)
new_field_2 = models.IntegerField( # Assumed that it is an integer field.
editable=False,
...
)