2010-03-17 3 views
14

Şablonumda, belirli bir alana ait olmayanlar da dahil olmak üzere tüm form hataları boyunca yinelemek istiyorum. Yani,Django, tüm biçim hataları üzerinden döngü

Ben farklı versiyonlarını denedim (form.errors için, yani o da __all__ hataları lutfen için göstermesi gerekir):

<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> 

Hala başarı, herhangi bir öneri için minnettar olacaktır.

cevap

27

Django'daki form hataları, ErrorDict örneğidir (bu yalnızca dict'un bir alt sınıfıdır). döngü sözdizimi için Şablonunuza hafif bir ayar deneyin:

{% for key, value in form.errors.items %} 
14

form.non_field_errors arayan bir ihtimal, misiniz? Belirli bir alanla ilişkili olmayan hatalara nasıl erişeceğiniz budur.

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

Başka bir örnek için forms.py test suite'u da kontrol edin. Arama için form.non_field_errors

+1

Formunuzu gördüğünüz için teşekkür ederiz.non_field_errors! – Hellnar