Fixed #9147 -- Added `FormPreview.process_preview` customization hook. Thanks, bthomas and thalin.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12486 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
9810178706
commit
a9b2ac25d1
|
@ -60,6 +60,7 @@ class FormPreview(object):
|
||||||
f = self.form(request.POST, auto_id=AUTO_ID)
|
f = self.form(request.POST, auto_id=AUTO_ID)
|
||||||
context = {'form': f, 'stage_field': self.unused_name('stage'), 'state': self.state}
|
context = {'form': f, 'stage_field': self.unused_name('stage'), 'state': self.state}
|
||||||
if f.is_valid():
|
if f.is_valid():
|
||||||
|
self.process_preview(request, f, context)
|
||||||
context['hash_field'] = self.unused_name('hash')
|
context['hash_field'] = self.unused_name('hash')
|
||||||
context['hash_value'] = self.security_hash(request, f)
|
context['hash_value'] = self.security_hash(request, f)
|
||||||
return render_to_response(self.preview_template, context, context_instance=RequestContext(request))
|
return render_to_response(self.preview_template, context, context_instance=RequestContext(request))
|
||||||
|
@ -96,6 +97,13 @@ class FormPreview(object):
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def process_preview(self, request, form, context):
|
||||||
|
"""
|
||||||
|
Given a validated form, performs any extra processing before displaying
|
||||||
|
the preview page, and saves any extra data in context.
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
def security_hash(self, request, form):
|
def security_hash(self, request, form):
|
||||||
"""
|
"""
|
||||||
Calculates the security hash for the given HttpRequest and Form instances.
|
Calculates the security hash for the given HttpRequest and Form instances.
|
||||||
|
|
|
@ -108,3 +108,16 @@ These values can be overridden for a particular form preview by setting
|
||||||
:attr:`~django.contrib.formtools.FormPreview.form_template` attributes on the
|
:attr:`~django.contrib.formtools.FormPreview.form_template` attributes on the
|
||||||
FormPreview subclass. See :file:`django/contrib/formtools/templates` for the
|
FormPreview subclass. See :file:`django/contrib/formtools/templates` for the
|
||||||
default templates.
|
default templates.
|
||||||
|
|
||||||
|
Advanced ``FormPreview`` methods
|
||||||
|
================================
|
||||||
|
|
||||||
|
.. versionadded:: 1.2
|
||||||
|
|
||||||
|
.. method:: FormPreview.process_preview
|
||||||
|
|
||||||
|
Given a validated form, performs any extra processing before displaying the
|
||||||
|
preview page, and saves any extra data in context.
|
||||||
|
|
||||||
|
By default, this method is empty. It is called after the form is validated,
|
||||||
|
but before the context is modified with hash information and rendered.
|
||||||
|
|
|
@ -199,8 +199,8 @@ wizard takes a list of your :class:`~django.forms.Form` objects as arguments::
|
||||||
(r'^contact/$', ContactWizard([ContactForm1, ContactForm2])),
|
(r'^contact/$', ContactWizard([ContactForm1, ContactForm2])),
|
||||||
)
|
)
|
||||||
|
|
||||||
Advanced FormWizard methods
|
Advanced ``FormWizard`` methods
|
||||||
===========================
|
===============================
|
||||||
|
|
||||||
.. class:: FormWizard
|
.. class:: FormWizard
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue