Django, перебрать все ошибки формы - PullRequest
16 голосов
/ 17 марта 2010

В моем шаблоне я хочу перебрать все ошибки формы, в том числе те, которые НЕ принадлежат конкретному полю. (что означает для 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>

Все еще не достигнуто, я буду благодарен за любое предложение.

Ответы [ 2 ]

33 голосов
/ 17 марта 2010

Ошибки формы в Django реализованы как экземпляр ErrorDict (который является просто подклассом dict с дополнениями). Попробуйте внести небольшие изменения в шаблон для синтаксиса цикла:

{% for key, value in form.errors.items %}
16 голосов
/ 17 марта 2010

Вы случайно не ищете form.non_field_errors? Так вы получите доступ к ошибкам, не связанным с конкретным полем.

{% if form.non_field_errors %}
<ul>
    {{ form.non_field_errors.as_ul }}
</ul>
{% endif %}

Проверьте также набор тестов *. Искать form.non_field_errors

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...