Укладка django непрофильных ошибок в формах
Если я смотрю в Django forms.py, as_p()
вызывает _html_output()
, который стирает полевые ошибки с помощью self.error_class()
(хотя я не могу определить его определение).
Однако _html_output()
НЕ стиль non_field_errors
(a.k.a. top_errors в коде).
Как стилизовать неполученные ошибки? Вырезать и вставить все _html_output?
Я использую Django 1.0.
Ответы
Ответ 1
Я использую этот шаблон для стирания ошибок без полей:
{% if form.non_field_errors %}
<div class="non-field-errors">
{% for err in form.non_field_errors %}
<p class="form-error">{{ err }}</p>
{% endfor %}
</div>
{% endif %}
Ответ 2
В шаблоне вы можете получить доступ к {{form.non_field_errors}} и сделать их, как вам нравится. Здесь, как администратор Django обрабатывает их, например: http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/templates/admin/change_form.html#L40
Ответ 3
Параметры:
Оба {{ form.non_field_errors }}
и {{ form.non_field_errors.as_ul }}
делают то же самое.
{{ form.non_field_errors.as_text }}
отображает ошибки с *
перед текстом.
Эта статья также помогает объяснить, почему *
не будет удален django ticket