Ho un formset inline per un modello, che ha un vincolo unique_together. E così, quando i dati di input, che non rispetta questo vincolo, visualizza:Django: visualizzazione errori formset corretti
__all__Please correct the duplicate values below.
Il codice, che fa questo è:
{% for error in formset.errors %}
{{ error }}<br/>
{% endfor %}
io non faccio molto come il __all__
all'inizio dell'errore ed è abbastanza chiaramente la chiave del dizionario, così ho provato:
{% for key, error in formset.errors %}
{{ key }}: {{ error }}<br/>
{% endfor %}
Ma poi tutto quello che ottiene è:
__all__:
{{error}} non visualizzerà affatto. Allora, cosa sta succedendo qui? E come faccio a visualizzare correttamente l'errore?
Grazie :) disponibile. La tua strada non ha funzionato, ma alla fine ho funzionato con una piccola modifica (errori.valori anziché errori), quindi ora si presenta così: {% per dict in formset.errors%} {% per errore in dict.values%} {{error}} {% endfor%} {% endfor%} –
Contento di aver potuto aiutare. Ho aggiornato la mia risposta in base ai tuoi commenti. Sembra che il problema chiave che prima lo aveva messo in disordine era che 'formset.errors' fosse una lista di dict, non un singolo dict. –
Per la versione corrente di Django, il looping degli errori nei template non è generalmente quello che vuoi. Dal momento che l'OP ha chiesto alla fine "... come faccio a visualizzare correttamente l'errore?", Vorrei fare riferimento alle altre risposte che non coinvolgono gli errori di loopoverover. – dsalaj