Обработка ошибок а полях формы.
Сначала необходимо создать пустой массив, в котором будут храниться сообщения об ошибках.
Далее в цикле необходимо проверить все значения из полей формы.
Если значение в поле формы введено с ошибкой, то в массив ошибок необходимо добавить описание этой ошибки.
После этого в шаблоне необходимо вывести все сообщения об ошибках из массива ошибок, если они есть.
def contact(request):
errors = []
if not request.POST['subject']:
errors.append('Enter a subject.')
if not request.POST['message']:
errors.append('Enter a message.')
if not request.POST['email']:
errors.append('Enter a valid e-mail address.')
if not errors:
send_mail(
request.POST['subject'],
request.POST['message'],
request.POST.get('email', 'noreply@example.com'),
['siteowner@example.com'],
)
return HttpResponseRedirect('/contact/thanks/')
t = loader.get_template('contact_form.html')
c = RequestContext(request, {
'errors': errors,
'subject': request.POST.get('subject', ''),
'message': request.POST.get('message', ''),
'email': request.POST.get('email', ''),
})
renderedTemplate = t.render(c)
return HttpResponse(renderedTemplate)
{% if errors %}
{% for error in errors %}
<p style="color: red;">{{ error }}</p>
{% endfor %}
{% endif %}
Комментариев нет:
Отправить комментарий