带有formset的Django crispy表单不显示删除复选框

时间:2017-04-21 16:56:16

标签: django django-crispy-forms

我有一些与此示例非常相似的代码结构:https://gist.github.com/ibarovic/3092910

除了每个Book元素之后的删除复选框都没有显示外,一切都运行良好。如果我改变

{% crispy formset formset.form.helper %}

{% crispy formset %}

显示删除复选框,但表单不再起作用(b / c HTML表单标签不仅使用一次)。

我怀疑BookForm不知道那些复选框(b / c它们稍后会被inlineformset_factory添加),因此它们不会被添加到布局中而被忽略。我不知道如何规避这一点。

1 个答案:

答案 0 :(得分:3)

我找到了一个解决方案:Django crispy-forms, BaseGenericInlineFormSet & allow_delete

在BookForm(重复多次) init 中,您可以添加以下内容:

self.helper = FormHelper(form=self) # or manual layout
self.helper.form_tag = False

i = self.helper.layout.fields.index('title')
self.helper.layout.insert(i+1, layout.Field("DELETE"))

然后将大写字母“DELETE”字段添加到每个单一的BookForm ......