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
|
"""
View which can render and send email from a contact form.
"""
from django.core.urlresolvers import reverse
from django.views.generic.edit import FormView
from .forms import ContactForm
class ContactFormView(FormView):
form_class = ContactForm
template_name = 'contact_form/contact_form.html'
def form_valid(self, form):
form.save()
return super(ContactFormView, self).form_valid(form)
def get_form_kwargs(self):
# ContactForm instances require instantiation with an
# HttpRequest.
kwargs = super(ContactFormView, self).get_form_kwargs()
kwargs.update({'request': self.request})
return kwargs
def get_success_url(self):
# This is in a method instead of the success_url attribute
# because doing it as an attribute would involve a
# module-level call to reverse(), creating a circular
# dependency between the URLConf (which imports this module)
# and this module (which would need to access the URLConf to
# make the reverse() call).
return reverse('contact_form_sent')
|