Ho un modulo con diversi campi. Ho controlli di convalida separati per ogni campo, fatti tramite la convalida dei moduli. Tuttavia, devo anche controllare se alcuni campi sono stati compilati prima di reindirizzare l'utente a una vista diversa. Speravo di poter in qualche modo aggiungere l'errore a forms.non_field_errors perché non è per un campo particolare, ma non sono sicuro di quale sarebbe la sintassi giusta per questo. Ho controllato on-line e ho trovato ..Come aggiungere un messaggio di errore a form.non_field_errors in django?
form.errors['__all__'] = form.error_class(["error msg"])
Questo visualizza il messaggio di errore, ma sembra rovinare le altre pagine come bene e displyas il messaggio di errore se clicco su qualsiasi altra cosa.
ho cercato
form._errors[NON_FIELD_ERRORS] = form.error_class()
Questo provoca un oggetto 'NoneType' ha nessun errore attributo 'setDefault' per me.
ho cercato
form.non_field_errors().append("Please complete your profile in order to access the content.")
Questo non sembra di fare nulla e non posso vedere il messaggio di errore sulla vista.
Quale sarebbe il modo migliore per farlo? Idealmente, non voglio farlo nel metodo pulito della forma. Sento che dovrei essere in grado di aggiungere un errore al modulo nella vista.
So che posso farlo nel metodo Form.clean().Comunque preferirei farlo nella vista e aggiungere semplicemente un errore alla lista form.errors, è possibile? – Angela
Ebbene sì, è possibile che la mia risposta lo provi :) – jpic
Grazie a jpic per la tua risposta dettagliata. Proverò questo codice e tornerò. Scusa per la risposta in ritardo, sono stato via in vacanza. – Angela