如何在默认情况下不要求Django管理员中的所有字段?

时间:2014-07-17 20:59:28

标签: django admin models

我可能希望在表单的另一个点上需要这些字段,但是现在如何将模型中的所有字段设置为管理员不需要的字段?如果可能,我宁愿不要求默认。详细说明...我将数据输入到django管理表单中,但它不保存它,因为它表示其他字段是必需的。有没有办法让我为管理员解决这个问题?提前感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

首先:如果您的Model包含blank=Falsenull=False等字段(具体取决于字段),则会发生以下两种情况:

  1. Yoy必须创建一个自定义ModelForm,声明每个相同的字段,每个字段都有required=False
  2. 当尝试将数据库保存到数据库时,此模型将进行繁荣(因为空值无法传递到null=False列)。
  3. 因此,首先,您必须将模型中的所有字段设为null=Trueblank=True。因此,默认情况下,ModelForm类将使用具有相同限制的字段创建 - 在这种情况下,具有required=False。因此默认情况下它将打开,您可以像往常一样安全地使用ModelAdmin但是这意味着您必须为客户/来宾声明一个明确的ModelForm类,并使用明确的相同字段但具有required=True(已编辑。默认情况下,将使用required创建字段= False,因为在我给出的示例中数据库的空白= False。

    ModelAdmin没有办法自行打开表单字段 - 甚至表单都没有办法说“你还记得在父表中声明的这个字段吗?好吧:我想拥有它但没有{{1}在真实“。

答案 1 :(得分:0)

似乎唯一可行的方法是编写自己的模型字段,默认情况下需要= False和blank = True。否则你将破坏数据库。