2009-11-17 20 views
6

Siempre que use una etiqueta {{form.field.errors}} en una plantilla de Django, el mensaje de validación que se muestra siempre está rodeado por una etiqueta de lista desordenada. Esto no es ideal para mi ¿Puedo modificar el html del mensaje de validación circundante para un formulario de un paquete reutilizable?Personalice la salida html de la validación de formulario de Django

+2

Tenga en cuenta que la lista no ordenada tiene clase 'errorlist', por lo que puede utilizar CSS para el estilo de la lista como desee . – Alasdair

Respuesta

8

A partir de los documentos django sobre looping over a form's fields:

{{ field.errors }}
Salidas un <ul class="errorlist"> contiene algún error de validación correspondiente a este campo. Puede personalizar la presentación de los errores con un bucle {% for error in field.errors %}. En este caso, cada objeto en el bucle es una cadena simple que contiene el mensaje de error.

Así, por ejemplo, para envolver cada error en <p> etiquetas puede hacer:

{% for error in field.errors %} 
    <p>{{ error|escape }}</p>  
{% endfor %} 
+0

aún muestra como li, más bien solo como cadena – DataGreed

+0

@DataGreed no de acuerdo con los documentos a los que he vinculado anteriormente: * En este caso, cada objeto en el ciclo ** es una cadena simple ** que contiene el mensaje de error. * – Alasdair

+0

En realidad, tiene que iterar sobre form.non_field_errors para obtener las cadenas – DataGreed

Cuestiones relacionadas