2009-11-17 6 views
6

Immer wenn Sie ein {{form.field.errors}} -Tag in einer Django-Vorlage verwenden, wird die angezeigte Validierungsnachricht immer mit einem ungeordneten Listen-Tag umgeben. Das ist nicht ideal für mich. Kann ich die umgebende Validierungsnachricht html für ein Formular aus einem wiederverwendbaren Paket ändern?Anpassen der HTML-Ausgabe von Djangos Formularüberprüfung

+2

Beachten Sie, dass die ungeordnete Liste Klasse 'errorlist' hat, so dass Sie CSS verwenden können, um die Liste stylen, wie Sie wollen . – Alasdair

Antwort

8

Aus dem django docs über looping over a form's fields:

{{ field.errors }}
Ausgänge eines <ul class="errorlist"> Bestätigungsfehler enthält auf dieses Gebiet entspricht. Sie können die Präsentation der Fehler mit einer {% for error in field.errors %} Schleife anpassen. In diesem Fall ist jedes Objekt in der Schleife eine einfache Zeichenfolge, die die Fehlermeldung enthält.

So zum Beispiel, jeden Fehler in <p> Tags wickeln Sie tun würden:

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

es gibt immer noch als li, eher sie nur Zeichenfolge – DataGreed

+0

@DataGreed nicht nach den Dokumenten, die ich oben verlinkt: * In diesem Fall ist jedes Objekt in der Schleife ** eine einfache Zeichenfolge ** mit der Fehlermeldung. * – Alasdair

+0

Eigentlich müssen Sie über form.non_field_errors iterieren, um Strings zu erhalten – DataGreed