我使用以下代碼的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 –