我想个性化字段名称渲染,就像使用 auto_id 一样。一些代码:
>>> from django import forms
>>> from django.forms.formsets import formset_factory
>>> class MyForm(forms.Form):
... name = forms.CharField()
...
>>> myform_formset = formset_factory(MyForm)
>>> print myform_formset(auto_id='my_form_%s')
<input id="my_form_form-TOTAL_FORMS" name="form-TOTAL_FORMS" [...]
<tr><th><label for="my_form_form-0-name">Name:</label></th><td>
<input id="my_form_form-0-name" name="form-0-name" type="text" /></td></tr>
ID是个性化的:id =“ my_form _ form-0-name”。实际上,字段名称是这样渲染的:name =“form-0-name”。我想将它们渲染为name =“ my_form _ form-0-name”。
为什么我需要它?我的表单中有两个不同的formset,所以我有多个字段名为“form-0-name”,这对POST数据不好。
答案 0 :(得分:3)
您可以将prefix
参数添加到myform_formset
myform_formset = formset_factory(MyForm)
print myform_formset(prefix="my_form")
<td><input id="id_my_form-1-name" name="my_form-1-name" type="text" /></td></tr>