Injecter des erreurs déjà validé le formulaire?
Après mon form.Form
valide la saisie de l'utilisateur des valeurs que je passe sur un autre (externe) processus de transformation. Ce processus externe peut peut-être trouver d'autres erreurs dans les valeurs.
Est-il un moyen pour injecter ces erreurs dans le déjà validé le formulaire de sorte qu'ils peuvent être affichées via le formulaire habituel d'erreur des méthodes d'affichage (ou il y a mieux que les approches alternatives)?
L'une des suggestions était d'inclure le traitement externe de la validation du formulaire, ce qui n'est pas idéal parce que le processus externe fait beaucoup plus que de simplement valider.
Vous devez vous connecter pour publier un commentaire.
Form._errors
peut être traité comme un dictionnaire standard. Il est souhaitable d'utiliser leErrorList
classe, et d'ajouter des erreurs à la liste existante:Et si vous voulez ajouter le terrain, les erreurs, utiliser
django.forms.forms.NON_FIELD_ERRORS
(par défaut"__all__"
) au lieu de"myfield"
._errors
est la partie de la forme publique de l'API, en dépit de son nom; voir insin réponse à un docs lien.Pour Django 1.7+, vous devez utiliser
form.add_error()
au lieu d'accéder àform._errors
directement.Documentation: https://docs.djangoproject.com/en/stable/ref/forms/api/#django.forms.Form.add_error
Vous pouvez ajouter d'autres détails de l'erreur à la forme du
_errors
attribut directement:https://docs.djangoproject.com/en/1.5/ref/forms/validation/#described-later
https://docs.djangoproject.com/en/1.6/ref/forms/validation/#modifying-field-errors
add_error
fonction: docs.djangoproject.com/en/dev/ref/forms/api/...