带有表单集的 Django 脆皮表单不显示删除复选框
Django crispy form with formset does not show delete checkbox
我有一些代码结构与这个例子非常相似:https://gist.github.com/ibarovic/3092910
除了每个 Book 元素后面的删除复选框根本没有显示外,一切都运行良好。如果我改变
{% crispy formset formset.form.helper %}
到
{% crispy formset %}
已显示删除复选框,但表单不再有效(b/c HTML 表单标签不仅使用了一次)。
我怀疑 BookForm 不知道这些复选框(b/c 它们稍后以某种方式被 inlineformset_factory 添加),因此它们不会被添加到布局中并被忽略。不过我不知道如何规避它。
多亏了这个我找到了解决方案: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 中...
我有一些代码结构与这个例子非常相似:https://gist.github.com/ibarovic/3092910
除了每个 Book 元素后面的删除复选框根本没有显示外,一切都运行良好。如果我改变
{% crispy formset formset.form.helper %}
到
{% crispy formset %}
已显示删除复选框,但表单不再有效(b/c HTML 表单标签不仅使用了一次)。
我怀疑 BookForm 不知道这些复选框(b/c 它们稍后以某种方式被 inlineformset_factory 添加),因此它们不会被添加到布局中并被忽略。不过我不知道如何规避它。
多亏了这个我找到了解决方案: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 中...