假设我有一个Contact对象,我希望在django(1.8)中有两组联系人Formsets在html模板中除以 fieldset 标记。我使用modelformset_factory。无论我使用一个或两个不同的工厂函数,这两个formset中的字段在html中具有相同的id。由于http.Request.body是字典,我丢失了关于两个表单集之一的信息。
contacts_formset = modelformset_factory(
models.Contact,
form=forms.ContactDetailForm,
extra=2)
contacts_escalation_formset_new = contacts_formset(
queryset=models.Contact.objects.none())
contacts_other_formset_new = contacts_formset(
queryset=models.Contact.objects.none())
HTML中的:
input id="id_form-0-name" maxlength="155" name="form-0-name" type="text"
input id="id_form-0-name" maxlength="155" name="form-0-name" type="text"
对于简单的django形式,有关键字“prefix = ...”。但是这个工厂函数没有这个论点。我该如何解决?
答案 0 :(得分:2)
modelformset_factory
类返回一个FormSet类。此FormSet类具有可选的prefix
参数,类似于Form类。
contacts_escalation_formset_new = contacts_formset(
prefix='escalation',
queryset=models.Contact.objects.none(),
)
contacts_other_formset_new = contacts_formset(
prefix='other'
queryset=models.Contact.objects.none(),
)
有关其他示例,请参阅using more than one formset in a view上的文档。