On the one page i have some content and several forms, so my view looks like this:
def mainpageview(request):
args = {}
callbackform = CallBackForm
mailform = Mail
args.update(csrf(request))
args['mainpage'] = Main.objects.get(pk=1)
args['callbackform'] = callbackform
args['mailform'] = mailform
return render (request, 'main/index.html', args)
def mailform(request):
if request.POST:
mailform = Mail(request.POST)
if mailform.is_valid():
mail = mailform.cleaned_data['email']
message = "Email: " + mail
send_mail(...)
return HttpResponseRedirect('/callbackresult/')
else:
mailform = Mail()
return HttpResponseRedirect('/', {'mailform':mailform})
else:
mailform = Mail(request.POST)
return render(request, 'main/index.html', {mailform:mailform})
def callback(request):
if request.POST:
callbackform = CallBackForm(request.POST)
if callbackform.is_valid():
name = callbackform.cleaned_data['name']
phone = callbackform.cleaned_data['phone']
message = "Name: " + name + "Phone: " + phone
send_mail(...)
return HttpResponseRedirect('/callbackresult/')
else:
return HttpResponseRedirect('/')
else:
return HttpResponseRedirect('/')
This is how looks my forms:
class CallBackForm(forms.Form):
name = forms.CharField()
phone = forms.CharField()
class Mail(forms.Form):
email = forms.EmailField()
I add action parameter for every form, so this is example of my template:
<form action="/mail/" method="POST">
{% csrf_token %}
{{error.mailform}}
{{ mailform }}
<input type="submit" class="success button" value="Subscribe">
</form>
Everything works fine, but i can't get how to write form view to show form error({{error.mailform}}). Hope you can help me with it.