django forms views.py code example
Example 1: django form view
class ContactView(FormView):
form_class = ContactForm
template_name = 'contact-us.html'
success_url = reverse_lazy('<app_name>:contact-us')
def get_initial(self):
initial = super(ContactView, self).get_initial()
if self.request.user.is_authenticated:
initial.update({'name': self.request.user.get_full_name()})
return initial
def form_valid(self, form):
self.send_mail(form.cleaned_data)
return super(ContactView, self).form_valid(form)
def send_mail(self, valid_data):
# Send mail logic
print(valid_data)
Example 2: in function how to get data from django form
from django.core.mail import send_mail
if form.is_valid():
subject = form.cleaned_data['subject']
message = form.cleaned_data['message']
sender = form.cleaned_data['sender']
cc_myself = form.cleaned_data['cc_myself']
recipients = ['[email protected]']
if cc_myself:
recipients.append(sender)
send_mail(subject, message, sender, recipients)
return HttpResponseRedirect('/thanks/')
Example 3: formview django
from myapp.forms import ContactForm
from django.views.generic.edit import FormView
class ContactView(FormView):
template_name = 'contact.html'
form_class = ContactForm
success_url = '/thanks/'
def form_valid(self, form):
# This method is called when valid form data has been POSTed.
# It should return an HttpResponse.
form.send_email()
return super().form_valid(form)