2009-11-17 2 views
6

Ogni volta che si utilizza un tag {{form.field.errors}} in un modello Django, il messaggio di convalida visualizzato è sempre circondato da un tag elenco non ordinato. Questo non è l'ideale per me. Sono in grado di modificare il messaggio di convalida circostante html per un modulo da un pacchetto riutilizzabile?Personalizza l'output html della convalida del modulo di Django

+2

Nota che la lista non ordinata ha classe 'errorlist', in modo da poter utilizzare i CSS per lo stile della lista come si desidera . – Alasdair

risposta

8

Dalla documentazione django merito looping over a form's fields:

{{ field.errors }}
uscite una <ul class="errorlist"> contenente errori di convalida corrispondente a questo campo. È possibile personalizzare la presentazione degli errori con un ciclo {% for error in field.errors %}. In questo caso, ogni oggetto nel ciclo è una semplice stringa che contiene il messaggio di errore.

Così, per esempio, per avvolgere ogni errore nel <p> tag si dovrebbe fare:

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

viene ancora emesso come li, piuttosto solo stringa – DataGreed

+0

@DataGreed non in base ai documenti che ho collegato sopra: * In questo caso, ogni oggetto nel ciclo ** è una semplice stringa ** contenente il messaggio di errore. * – Alasdair

+0

In realtà devi eseguire iterate su form.non_field_errors per ottenere stringhe – DataGreed