diff options
| author | Brian Rosner <brosner@gmail.com> | 2008-07-07 00:31:29 +0000 |
|---|---|---|
| committer | Brian Rosner <brosner@gmail.com> | 2008-07-07 00:31:29 +0000 |
| commit | 84541cd244638b44ca7f0f1076427470f4128a44 (patch) | |
| tree | 8761cea5d273f074873e9658324f7de929852736 /django/newforms/formsets.py | |
| parent | 21974955c4fb3df6ee9308d27c180df47dc3a660 (diff) | |
newforms-admin: Allow an overridden _construct_form to easily pass parameters through to the form constructor in formsets.
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@7855 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/newforms/formsets.py')
| -rw-r--r-- | django/newforms/formsets.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/django/newforms/formsets.py b/django/newforms/formsets.py index 03f5278c30..1ae27bf58c 100644 --- a/django/newforms/formsets.py +++ b/django/newforms/formsets.py @@ -78,23 +78,24 @@ class BaseFormSet(StrAndUnicode): for i in xrange(self._total_form_count): self.forms.append(self._construct_form(i)) - def _construct_form(self, i): + def _construct_form(self, i, **kwargs): """ Instantiates and returns the i-th form instance in a formset. """ - kwargs = {'auto_id': self.auto_id, 'prefix': self.add_prefix(i)} + defaults = {'auto_id': self.auto_id, 'prefix': self.add_prefix(i)} if self.data or self.files: - kwargs['data'] = self.data - kwargs['files'] = self.files + defaults['data'] = self.data + defaults['files'] = self.files if self.initial: try: - kwargs['initial'] = self.initial[i] + defaults['initial'] = self.initial[i] except IndexError: pass # Allow extra forms to be empty. if i >= self._initial_form_count: - kwargs['empty_permitted'] = True - form = self.form(**kwargs) + defaults['empty_permitted'] = True + defaults.update(kwargs) + form = self.form(**defaults) self.add_fields(form, i) return form |
