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>

Все еще никакой успех, я буду greatful для любого предложения.

17
задан Hellnar 17 March 2010 в 13:37
поделиться

2 ответа

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

{% for key, value in form.errors.items %}
34
ответ дан 30 November 2019 в 10:39
поделиться

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

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

Посмотрите также тестовый набор forms.py для другого примера. Search for form.non_field_errors

17
ответ дан 30 November 2019 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: