2010-03-17 51 views
14

在我的模板中,我想遍歷所有表單錯誤,包括不屬於特定字段的錯誤。 (這意味着對於form.errors,它也應該顯示__all__錯誤藏漢)Django,遍歷所有表單錯誤

我嘗試了好幾種版本,即:

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

仍然沒有成就,我將不勝感激任何建議。

回答

27

Django中的表單錯誤實現爲ErrorDict實例(它只是dict的附加子類)。嘗試稍微調整您的模板以獲得循環語法:

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

您是否正在尋找form.non_field_errors?這就是你將如何訪問與特定字段無關的錯誤。

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

檢查forms.py test suite以及另一個例子。搜索form.non_field_errors

+1

感謝您顯示form.non_field_errors! – Hellnar 2010-03-17 13:48:56