Bei Django-Formularen kann überprüft werden, ob das Formular gültig ist:
if form.is_valid():
return HttpResponseRedirect('/thanks/')
Aber ich vermisse, was zu tun ist, wenn es nicht gültig ist? Wie kann ich das Formular mit den Fehlermeldungen zurücksenden? Ich sehe das "Sonst" in keinem der Beispiele.
django
django-forms
user984003
quelle
quelle
myForm
ist eine Instanz von entwederforms.Form
oderforms.ModelForm
, lesen Sie über Django FormsUNIQUE constraint failed:
ausnahmsweise?views.py
Wenn Sie die Fehler des Formulars anzeigen möchten, die nicht gültig sind, geben Sie einfach {{form.as_p}} wie unten beschrieben ein
page.html
quelle
messages.error(request, "Error")
?quelle
UPDATE: Eine detailliertere Beschreibung der Formset-Fehler wurde hinzugefügt.
Form.errors kombiniert alle Feld- und Nichtfeldfehler. Daher können Sie das HTML folgendermaßen vereinfachen:
Vorlage
form_tags.py
Eine Einschränkung: Im Gegensatz zu Formularen enthält Formset.errors keine non_field_errors.
quelle
Sie können dies einfach so tun, da das Formular bei der Initialisierung auch Formulardaten und ungültige Daten enthält:
if löst den Fehler in der Vorlage aus, falls vorhanden, aber die Formulardaten bleiben weiterhin wie folgt:
error_demo_here
quelle
Sie können einfach eine Flag-Variable setzen, in diesem Fall is_successed .
Anschließend können Sie in Ihre Vorlage einfach den folgenden Code einfügen
quelle