Django中的类Meta VS表单字段

时间:2019-10-08 20:03:33

标签: django forms

我正在从this示例中学习Django表单。运行服务器时,我得到django.core.exceptions.ImproperlyConfigured: Creating a ModelForm without either the 'fields' attribute or the 'exclude' attribute is prohibited(已解决here)。使用Meta类,一切正常。 请向我解释一下笔法是否可以同时使用Django==2.2.6的这些方法以及它们的优缺点。

1 个答案:

答案 0 :(得分:1)

在Django 1.8之后,要求表单明确指出他们想在Meta类中显示哪些字段,因此您肯定需要在2.2.6中进行操作。

fields是列出字段的一种包含方式。如果您明确想要列出表单中包含哪些字段,请将它们放在此处。这意味着,如果您更改模型,除非将字段设置为__all__

,否则模型中的新字段将不会自动添加到表单中。

exclude恰恰相反。这意味着该表单包括除exclude中明确列出的字段以外的所有字段。如果更改模型,除非更改exclude中的内容,否则新字段将添加到表单中。

在宏伟的事物中,差异实际上并没有那么大。这仅取决于您是要明确指定包含的内容还是排除的内容。