I formularze Django, może sprawdzić, czy formularz jest ważny:
if form.is_valid():
return HttpResponseRedirect('/thanks/')
Ale brakuje mi tego, co zrobić, jeśli to nie jest ważne? Jak zwrócić formularz z komunikatami o błędach? Nie widzę „innego” w żadnym z przykładów.
django
django-forms
user984003
źródło
źródło
myForm
jest instancjąforms.Form
orforms.ModelForm
, czytaj o Django FormsUNIQUE constraint failed:
wyjątku?views.py
Jeśli chcesz pokazać błędy innego formularza niż ten, który jest nieprawidłowy, po prostu wpisz {{form.as_p}} tak, jak zrobiłem poniżej
page.html
źródło
messages.error(request, "Error")
?źródło
AKTUALIZACJA: Dodano bardziej szczegółowy opis błędów zestawu formularzy.
Form.errors łączy wszystkie błędy field i non_field_errors. Dlatego możesz uprościć HTML do tego:
szablon
form_tags.py
Jedno zastrzeżenie: w przeciwieństwie do formularzy Formset.errors nie obejmuje non_field_errors.
źródło
po prostu możesz to zrobić, ponieważ kiedy zainicjowałeś formularz w zawiera dane formularza, a także nieprawidłowe dane:
if spowoduje błąd w szablonie, jeśli taki będzie, ale dane formularza pozostaną takie jak:
error_demo_here
źródło
Możesz podać po prostu zmienną flagową, w tym przypadku is_successed .
następnie w swoim szablonie możesz po prostu umieścić poniższy kod
źródło