Django:如何在所有管理页面中排除模型字段?

时间:2019-09-12 05:22:51

标签: python django django-models

我的项目有多个模型和模型的自定义管理页面。所有模型都继承自BaseModel

我在BaseModel中添加了2个新字段。鉴于所有模型都继承自BaseModel,因此他们也获得了这两个新字段,现在它们显示在管理页面中。但是我不希望这两个字段显示在管理页面中。

要从管理页面中排除字段,我们通常在管理类中使用excludes = [fields to be excluded]

是否有一种无需接触所有管理员课程即可实现这一目标的方法?

1 个答案:

答案 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,
        ...
    )