Je Django formulaires, il peut vérifier si le formulaire est valide:
if form.is_valid():
return HttpResponseRedirect('/thanks/')
Mais je manque quoi faire si ce n'est pas valide? Comment renvoyer le formulaire avec les messages d'erreur? Je ne vois le «autre» dans aucun des exemples.
django
django-forms
user984003
la source
la source
myForm
est une instance de soitforms.Form
ouforms.ModelForm
, lisez à propos de Django FormsUNIQUE constraint failed:
exception?views.py
Si vous voulez afficher les erreurs du formulaire autres que celles non valides, mettez simplement {{form.as_p}} comme ce que j'ai fait ci-dessous
page.html
la source
messages.error(request, "Error")
?la source
MISE À JOUR: Ajout d'une description plus détaillée des erreurs de formset.
Form.errors combine tous les champs et non_field_errors. Par conséquent, vous pouvez simplifier le html à ceci:
modèle
form_tags.py
Une mise en garde: contrairement aux formulaires Formset.errors n'inclut pas non_field_errors.
la source
vous pouvez simplement faire comme ceci car lorsque vous avez initialisé le formulaire dans contient des données de formulaire et des données invalides également:
if soulèvera l'erreur dans le modèle s'il en existe, mais les données du formulaire resteront toujours comme:
error_demo_here
la source
Vous pouvez mettre simplement une variable flag, dans ce cas is_successed .
ensuite dans votre modèle, vous pouvez simplement mettre le code ci-dessous
la source