diff options
| author | Brian Rosner <brosner@gmail.com> | 2008-07-23 04:46:31 +0000 |
|---|---|---|
| committer | Brian Rosner <brosner@gmail.com> | 2008-07-23 04:46:31 +0000 |
| commit | 3912403550e31ddb3a002789dd2fe3379a4e006e (patch) | |
| tree | 2412524db2d7cc35b915575e5965cb88926da9c0 | |
| parent | 681e7bbd255ec4237e3e5594c331e6b5ff9e03cb (diff) | |
Added the ability to customize the prefix value on an inline formset. Fixes #7899. AThanks for the tip Peter of the Norse.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8060 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/forms/models.py | 5 | ||||
| -rw-r--r-- | tests/modeltests/model_formsets/models.py | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/django/forms/models.py b/django/forms/models.py index 88e1ff93f2..56e19e7145 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -401,13 +401,14 @@ def modelformset_factory(model, form=ModelForm, formfield_callback=lambda f: f.f class BaseInlineFormset(BaseModelFormSet): """A formset for child objects related to a parent.""" - def __init__(self, data=None, files=None, instance=None, save_as_new=False): + def __init__(self, data=None, files=None, instance=None, + save_as_new=False, prefix=None): from django.db.models.fields.related import RelatedObject self.instance = instance self.save_as_new = save_as_new # is there a better way to get the object descriptor? self.rel_name = RelatedObject(self.fk.rel.to, self.model, self.fk).get_accessor_name() - super(BaseInlineFormset, self).__init__(data, files, prefix=self.rel_name) + super(BaseInlineFormset, self).__init__(data, files, prefix=prefix or self.rel_name) def _construct_forms(self): if self.save_as_new: diff --git a/tests/modeltests/model_formsets/models.py b/tests/modeltests/model_formsets/models.py index 4a89bc33d7..81355400cf 100644 --- a/tests/modeltests/model_formsets/models.py +++ b/tests/modeltests/model_formsets/models.py @@ -313,4 +313,13 @@ True >>> [book for book in formset.save() if book.author.pk == new_author.pk] [<Book: Les Fleurs du Mal>, <Book: Le Spleen de Paris>] +Test using a custom prefix on an inline formset. + +>>> formset = AuthorBooksFormSet(prefix="test") +>>> for form in formset.forms: +... print form.as_p() +<p><label for="id_test-0-title">Title:</label> <input id="id_test-0-title" type="text" name="test-0-title" maxlength="100" /><input type="hidden" name="test-0-id" id="id_test-0-id" /></p> +<p><label for="id_test-1-title">Title:</label> <input id="id_test-1-title" type="text" name="test-1-title" maxlength="100" /><input type="hidden" name="test-1-id" id="id_test-1-id" /></p> + + """} |
