""" This module defines the views of the contact_form app. """ from __future__ import absolute_import, unicode_literals from django.shortcuts import redirect from django.urls import reverse_lazy from django.views.generic import ( FormView, TemplateView, ) from .forms import ContactForm class ContactFormView(FormView): """ This is the contact form view. """ form_class = ContactForm template_name = 'contact_form/contact_form.html' success_url = reverse_lazy('contact_success') def get_form_kwargs(self, **kwargs): kwargs = super(ContactFormView, self).get_form_kwargs(**kwargs) kwargs['request'] = self.request return kwargs def get_initial(self): initial = super(ContactFormView, self).get_initial() currentuser = self.request.user if currentuser.is_authenticated: initial['name'] = ( currentuser.get_full_name() or currentuser.username) initial['email'] = currentuser.email return initial def form_valid(self, form): form.save(False) return redirect(self.get_success_url()) class ContactSuccessView(TemplateView): """ This view is shown after successful contact form sending. """ template_name = 'contact_form/contact_success.html'