diff options
| author | Chris Beaven <smileychris@gmail.com> | 2010-12-10 03:51:30 +0000 |
|---|---|---|
| committer | Chris Beaven <smileychris@gmail.com> | 2010-12-10 03:51:30 +0000 |
| commit | 2e909489d7601c59595e81e2b491dfc689abd778 (patch) | |
| tree | 7bc295a73cb3dd5377b129edcb4561934e394cb1 /django | |
| parent | ff8711a825ea9bbe98e873d7aa28ce5135528fec (diff) | |
Add FormMixin.get_form_kwargs method to abstract some common logic in a tidier
way. Tidy up (and amend) documentation about FormMixin and ModelFormMixin.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14865 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
| -rw-r--r-- | django/views/generic/edit.py | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/django/views/generic/edit.py b/django/views/generic/edit.py index f7270433c2..931a2d3fe2 100644 --- a/django/views/generic/edit.py +++ b/django/views/generic/edit.py @@ -31,16 +31,19 @@ class FormMixin(object): """ Returns an instance of the form to be used in this view. """ + return form_class(**self.get_form_kwargs()) + + def get_form_kwargs(self): + """ + Returns the keyword arguments for instanciating the form. + """ + kwargs = {'initial': self.get_initial()} if self.request.method in ('POST', 'PUT'): - return form_class( - data=self.request.POST, - files=self.request.FILES, - initial=self.get_initial() - ) - else: - return form_class( - initial=self.get_initial() - ) + kwargs.update({ + 'data': self.request.POST, + 'files': self.request.FILES, + }) + return kwargs def get_context_data(self, **kwargs): return kwargs @@ -75,22 +78,13 @@ class ModelFormMixin(FormMixin, SingleObjectMixin): model = self.get_queryset().model return model_forms.modelform_factory(model) - def get_form(self, form_class): + def get_form_kwargs(self): """ - Returns a form instantiated with the model instance from get_object(). + Returns the keyword arguments for instanciating the form. """ - if self.request.method in ('POST', 'PUT'): - return form_class( - data=self.request.POST, - files=self.request.FILES, - initial=self.get_initial(), - instance=self.object, - ) - else: - return form_class( - initial=self.get_initial(), - instance=self.object, - ) + kwargs = super(ModelFormMixin, self).get_form_kwargs() + kwargs.update({'instance': self.object}) + return kwargs def get_success_url(self): if self.success_url: |
