我有一个视图,它使用(initial{})
参数填充表单中的所有字段,但我不需要显示表单中的所有字段。
我可以创建另一个表单并在视图中使用新表单,但是如果存在其他参数,如initial
,但选择字段的功能会更好。
答案 0 :(得分:1)
您不是说要根据表单的状态更改要显示的字段,还是仅仅想要排除某些字段。
在后一种情况下(总是排除):
class MyForm(forms.ModelForm):
class Meta:
model = MyModel
exclude = ['fields', 'to', 'exclude']
如果排除是依赖于状态的,则可以使用Django中的表单工厂:
if short_form_state:
BookForm = modelform_factory(Book, fields=("author", "title"))
else long_form_state:
BookForm = modelform_factory(Book, exclude=("created",))
https://docs.djangoproject.com/en/1.9/topics/forms/modelforms/#modelform-factory-function