1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
## 01-add_form_args.diff by Daniel Watkins <daniel@daniel-watkins.co.uk>
##
## Add a form_args argument to the contact_form view, which is passed
## through to the form_class being used.
Index: django-contact-form/contact_form/views.py
===================================================================
--- django-contact-form.orig/contact_form/views.py 2009-05-01 11:20:54.000000000 +0100
+++ django-contact-form/contact_form/views.py 2009-05-01 11:20:58.000000000 +0100
@@ -14,7 +14,7 @@
def contact_form(request, form_class=ContactForm,
template_name='contact_form/contact_form.html',
success_url=None, extra_context=None,
- fail_silently=False):
+ fail_silently=False, form_args=None):
"""
Render a contact form, validate its input and send an email
from it.
@@ -71,15 +71,20 @@
# but contact_form/urls.py in turn imports from this module.
#
+ if form_args is None:
+ form_args = ()
if success_url is None:
success_url = reverse('contact_form_sent')
if request.method == 'POST':
- form = form_class(data=request.POST, files=request.FILES, request=request)
+ form = form_class(data=request.POST,
+ files=request.FILES,
+ request=request,
+ *form_args)
if form.is_valid():
form.save(fail_silently=fail_silently)
return HttpResponseRedirect(success_url)
else:
- form = form_class(request=request)
+ form = form_class(request=request, *form_args)
if extra_context is None:
extra_context = {}
|