可以选择在视图中渲染哪些字段?

时间:2016-02-17 17:54:34

标签: django django-views

我有一个视图,它使用(initial{})参数填充表单中的所有字段,但我不需要显示表单中的所有字段。

我可以创建另一个表单并在视图中使用新表单,但是如果存在其他参数,如initial,但选择字段的功能会更好。

1 个答案:

答案 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