【发布时间】:2021-03-13 15:53:44
【问题描述】:
我有这样的观点(修改以使其易于理解):
class MyCreateViewView(CreateView):
model = SomeModel
def get_form(self, form_class=None):
form = super().get_form(form_class)
form.helper = FormHelper(form)
form.fields['additional_field'] = forms.BooleanField(label="Something", required=False)
form.helper.add_input(Submit('submit', "Submit"))
return form
在添加FormHelper 之前,additional_field 字段出现在模板上。现在没有了。我的模板中的表单基本上是一行:{% crispy form %}。
django-crispy-forms docs 没有展示这种方法,因为它们专注于使用表单。我正在使用 Django 的 CreateView 为我构建表单,所以我不需要表单类。
到目前为止,我注意到在以编程方式添加新字段后执行form.helper = FormHelper(form) 可以解决问题。但这不是一个解决方案,因为我在这里展示的视图是一个简化版本,实际上我有两个视图在做类似的事情。所以我继承了这个类并在视图本身中添加了额外的字段(意味着 FormHelper 已经存在)。
【问题讨论】:
标签: python django django-crispy-forms