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