tipos registro personalizados formularios formulario form ejemplos avanzados python django django-templates django-forms

registro - formularios web python



Obtener una lista de errores en un formulario de Django (2)

Estoy tratando de crear un formulario en Django. Eso funciona y todo, pero quiero que todos los errores estén en la parte superior del formulario, no al lado de cada campo que tenga el error. Intenté pasar por encima de form.errors, pero solo mostraba el nombre del campo que tenía un error, no un mensaje de error como "Name is required".

Esto es más o menos lo que me gustaría poder usar en la parte superior del formulario:

{% if form.??? %} <ul class="errorlist"> {% for error in form.??? %} <li>{{ error }}</li> {% endfor %} </ul> {% endif %}

¿Qué usaría para ??? ¿ahí? No son errors ; que solo muestra los nombres de los campos.


form.errors es un diccionario. Cuando lo haga, {% for error in form.errors %} error corresponde a la clave.

En lugar de tratar

{% for field, errors in form.errors.items %} {% for error in errors %} ...

Etc.


Si quiere algo simple con una condición, tome esta forma:

{% if form.errors %} <ul> {% for error in form.errors %} <li>{{ error }}</li> {% endfor %} </ul> {% endif %}

Si desea obtener más información y ver el nombre y el error del campo, haga esto:

{% if form.errors %} <ul> {% for key,value in form.errors.items %} <li>{{ key|escape }} : {{ value|escape }}</li> {% endfor %} </ul> {% endif %}

Si quieres entender form.errors es un gran diccionario.