bux
bux

Reputation: 7739

Personalize form field name (with formset)

I would like personalize the field name render like with auto_id. Some code:

>>> 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>

Ids are personalizeds: id=" my_form_ form-0-name". Actually, field names are render like this: name="form-0-name". I would like render them like name=" my_form_ form-0-name".

Why i need it ? I've two differents formset in my form, so i've multiple field with name "form-0-name" and it's not good for POST data.

Upvotes: 1

Views: 1401

Answers (1)

exslim
exslim

Reputation: 1146

You can add prefix argument to 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>

Upvotes: 3

Related Questions