Django, перебрать все ошибки формы
В моем шаблоне я хочу повторить все ошибки формы, включая те, которые НЕ принадлежат определенному полю. (что означает для form.errors, он также должен отображать и для ошибок __all__
)
Я пробовал несколько версий, т.е.:
<div id="msg">
{% if form.errors %}
<div class="error">
<p><span>ERROR</span></p>
<ul>
{% for key,value in form.errors %}
{% for error in value %}
<li>{{ error }}</li>
{% endfor %}
{% endfor %}
</ul>
</div>
{% endif %}
</div>
По-прежнему нет достижения, я буду благодарен за любое предложение.
Ответы
Ответ 1
Ошибки формы в Django реализованы как экземпляр ErrorDict
(который является всего лишь подклассом dict
с дополнительными функциями). Попробуйте небольшую корректировку вашего шаблона для синтаксиса цикла:
{% for key, value in form.errors.items %}
Ответ 2
Вы, случайно, ищете form.non_field_errors
? Таким образом вы получите доступ к ошибкам, которые не связаны с конкретным полем.
{% if form.non_field_errors %}
<ul>
{{ form.non_field_errors.as_ul }}
</ul>
{% endif %}
Проверьте form.py test suite, а также на другой пример. Найдите form.non_field_errors