среда, 20 февраля 2013 г.

Django Паттерны

Обработка ошибок а полях формы.

Сначала необходимо создать пустой массив, в котором будут храниться сообщения об ошибках.

Далее в цикле необходимо проверить все значения из полей формы.

Если значение в поле формы введено с ошибкой, то в массив ошибок необходимо добавить описание этой ошибки.

После этого в шаблоне необходимо вывести все сообщения об ошибках из массива ошибок, если они есть.

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 %}

Комментариев нет:

Отправить комментарий