2011-03-07 42 views
11

这段代码在默认的登录模板:当帐户处于闲置状态Django的表单错误打印__all__

{{ form.errors }} 

产生以下HTML输出:

<ul class="errorlist"> 
    <li>__all__ 
    <ul class="errorlist"> 
     <li>This account is inactive.</li> 
    </ul> 
    </li> 
</ul> 

为什么它打印字符串_ 所有 _

我正在使用开发版本。

回答

21

啊,我应该用:

{{ form.non_field_errors }} 

代替

4

如果你和我一样,还是希望一次显示所有的错误,你也可以遍历form.errors.items。

这条线:

{{ form.errors }} 

变为这样的:(或类似)

<ul class="errorlist"> 
    {% for key, value in form.errors.items %} 
    <li>{% if key != '__all__' %}{{ key }} {% endif %}{{ value }}</li> 
    {% endfor %} 
</ul>