summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorChris Beaven <smileychris@gmail.com>2010-12-10 03:51:30 +0000
committerChris Beaven <smileychris@gmail.com>2010-12-10 03:51:30 +0000
commit2e909489d7601c59595e81e2b491dfc689abd778 (patch)
tree7bc295a73cb3dd5377b129edcb4561934e394cb1 /django
parentff8711a825ea9bbe98e873d7aa28ce5135528fec (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.py40
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: