我使用以下代码的django松脆形式未提及的字段一个div表单集来封装形式的所有表单字段在一个formset一起在一个div django的酥脆形式:裹每种形式与包括与
class OperatorForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(OperatorForm, self).__init__(*args, **kwargs):
self.helper = FormHelper(self)
self.helper.form_tag = False
self.helper.all().wrap_together(Div, css_class="operator-form")
self.helper.render_unmentioned_fields = True
class Meta:
model = Operator
fields = tuple(fields_list)
使用'self'实例化FormHelper会自动生成布局,而无需指定所有字段。我需要这个,因为我的字段是动态生成的。问题在于DELETE和ORDER字段未添加到布局。所以我将render_untioned_fields设置为True。使用此设置,这两个字段至少显示在窗体中,但不会与div中的其余字段一起打包。
我知道我可以手动迭代formset中的表单并用div包装它,这是我一直在做的事情,但是这需要手动处理formset的非形式错误,它通常通过脆皮自动完成。
编辑:根据要求更新了代码。这整个类实际上都包含在一个填充fields_list的工厂方法中,以便我可以动态地只包含某些字段。 ORDER和DELETE被故意排除。它们会自动检测(包括它们导致的错误)并显示在表单中,它们不会被包装在div中。
请在表单类定义中发布所有代码。 –
你是否故意忽略DELETE和ORDER字段? –
根据要求更新。 @BrianDant –