Python Django Forms Forms Validate a Form in a View

SUVODEEP DUBEY
SUVODEEP DUBEY
2,470 Points

OK, I need you to do a couple of things. In lead_form, check that the request's method is a POST. If it is, make a new L

The HttpResponseRedirect is correct still its failing the test

myproject/views.py
from django.core.mail import send_mail
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.shortcuts import render

from . import forms


def send_lead(email, url):
    send_mail(
        'Lead from {}'.format(email),
        '{} submitted {}'.format(email, url),
        email,
        ['kenneth@teamtreehouse.com']
    )


def lead_form(request):
    form = forms.LeadShareForm()
    if request.method == 'POST':
        if form.is_valid():
            return HttpResponseRedirect(reverse("lead"))
    return render(request, 'lead_form.html', {'form': form})

1 Answer

Jeff Muday
MOD
Jeff Muday
Treehouse Moderator 22,911 Points

You're so close!

Try this:

def lead_form(request):
    form = forms.LeadShareForm()
    if request.method == 'POST':
        form = forms.LeadShareForm(request.POST) # this line is what you forgot
        if form.is_valid():
            return HttpResponseRedirect(reverse("lead")) 
    return render(request, 'lead_form.html', {'form': form})