我可能希望在表单的另一个点上需要这些字段,但是现在如何将模型中的所有字段设置为管理员不需要的字段?如果可能,我宁愿不要求默认。详细说明...我将数据输入到django管理表单中,但它不保存它,因为它表示其他字段是必需的。有没有办法让我为管理员解决这个问题?提前感谢您的帮助!
答案 0 :(得分:2)
首先:如果您的Model
包含blank=False
或null=False
等字段(具体取决于字段),则会发生以下两种情况:
ModelForm
,声明每个相同的字段,每个字段都有required=False
null=False
列)。因此,首先,您必须将模型中的所有字段设为null=True
和blank=True
。因此,默认情况下,ModelForm
类将使用具有相同限制的字段创建 - 在这种情况下,具有required=False
。因此默认情况下它将打开,您可以像往常一样安全地使用ModelAdmin
。 但是这意味着您必须为客户/来宾声明一个明确的ModelForm
类,并使用明确的相同字段但具有required=True
(已编辑。默认情况下,将使用required创建字段= False,因为在我给出的示例中数据库的空白= False。
ModelAdmin没有办法自行打开表单字段 - 甚至表单都没有办法说“你还记得在父表中声明的这个字段吗?好吧:我想拥有它但没有{{1}在真实“。
答案 1 :(得分:0)
似乎唯一可行的方法是编写自己的模型字段,默认情况下需要= False和blank = True。否则你将破坏数据库。