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
risposta
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 %}
viene ancora emesso come li, piuttosto solo stringa – DataGreed
@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
In realtà devi eseguire iterate su form.non_field_errors per ottenere stringhe – DataGreed
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