2009-09-02 5 views
11

Se mi guardo forms.py, as_p() chiamate di Django _html_output(), quali stili errori campo con self.error_class() (anche se non riesco a trovare la definizione di tale).Styling django errori non campo sulle forme

Tuttavia, lo _html_output() non è in stile non_field_errors (ad esempio, top_errors nel codice).

Come si modellano gli errori non di campo? Taglia e incolla tutto il _html_output?

Sto utilizzando Django 1.0.

risposta

10

Nel modello è possibile accedere a {{form.non_field_errors}} e renderli come preferisci. Ecco come l'amministratore Django li gestisce per esempio: http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/templates/admin/change_form.html#L40

+0

Grazie. Triste di ricreare tutto il codice di rendering del modulo nel linguaggio dei template, ma forse questa è la cosa giusta. Conoscete un riferimento al modello completo equivalente a as_p? http://docs.djangoproject.com/en/dev/topics/forms/#looping-over-hidden-and-visible-fields è vicino, ma probabilmente non è lo stesso. – dfrankow

4

Opzioni:

Sia {{ form.non_field_errors }} e {{ form.non_field_errors.as_ul }} fanno la stessa cosa.

{{ form.non_field_errors.as_text }} visualizza gli errori con un * davanti al testo.

questo articolo è utile anche per spiegare il motivo per cui il * non verranno rimossi django ticket

11

Io uso questo modello per errori non campi di stile:

{% if form.non_field_errors %} 
    <div class="non-field-errors"> 
    {% for err in form.non_field_errors %} 
     <p class="form-error">{{ err }}</p> 
    {% endfor %} 
    </div> 
{% endif %}