2016-05-11 11 views
3

Kann man Feldfehler nur mit crispy-forms rendern? Ich habe versucht mit der Einstellung form_show_errors = False, aber das deaktiviert alle Fehler.Crispy Form nur Feldfehler rendern

Das Problem, das ich habe ist, dass ich benutzerdefinierte non_field_errors aber im Moment verwenden möchten sie erhalten zweimal gemacht.

Quelle:

{% if form.non_field_errors %} 
     <div class="alert alert-danger" style="margin-bottom: 0;"> 
     <span class="pficon pficon-error-circle-o"></span> 
     {% for err in form.non_field_errors %} 
     <p>{{ err }}</p> 
     {% endfor %} 
     </div> 
     {% endif %} 

    </div> 
    </div> 
    <div class="row"> 
     {% crispy form form.helper %} 
    </div> 

Fehler: enter image description here

Antwort

1

Sie könnten versuchen, die display_form.html Vorlage überschreiben. Sie haben nicht gesagt, welches Layout Sie verwenden, als Beispiel, hier ist die bootstrap3 version.

Duplizieren der Vorlage ist nicht ideal, aber es ist weniger als 10 Zeilen, so ist es nicht so schlimm.

Lassen Sie die if-Anweisung aus, die die Nicht-Formfehler enthält,

{% if form_show_errors %} 
    {% include "bootstrap3/errors.html" %} 
{% endif %} 

dann form_show_errors zurück in das Formular auf True gesetzt.

Alternativ können Sie die Vorlage errors.html stattdessen überschreiben und Ihr benutzerdefiniertes Layout für non_field_errors dort einfügen.

Weitere Informationen finden Sie in der Dokumentation unter overriding layout templates.

Verwandte Themen