2011-03-07 11 views
11

Este código en la plantilla de usuario por defecto:forma Django errores impresiones __all__

{{ form.errors }} 

producen este resultado HTML cuando la cuenta está inactiva:

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

¿Por qué imprimir la cadena _ todo _?

Estoy usando la versión de desarrollo por cierto.

Respuesta

21

Ah, yo debería haber utilizado:

{{ form.non_field_errors }} 

lugar

4

Si, como yo, todavía desea mostrar todos los errores a la vez, puede recorrer más de form.errors.items.

Esta línea:

{{ form.errors }} 

Se convierte en la siguiente: (o similar)

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