Форма Django не показывает ошибку валидации в шаблонах
Я пытаюсь создать страницу регистрации. Я пишу пользовательскую валидацию для поля формы регистрации. Но проблема в том, что форма не выдает ошибку валидации. Когда я пишу form.is_valid(), она показывает, что подтверждена. Я новичок в django и изучаю новые концепции. Я пытаюсь понять, что здесь не так .
Код файла Forms.py :
from django import forms
from django.core import validators
def emptyField(value):
if value == '':
raise forms.ValidationError("Please fill all the fields .")
def length(value):
if len(value) > 20:
raise forms.ValidationError("Username can contain atmost 20 characters .")
class UserForm(forms.Form):
username = forms.CharField(required=False,validators=[emptyField,length])
email = forms.EmailField(required=False,validators=[emptyField])
password = forms.CharField(required=False,validators=[emptyField])
rePassword = forms.CharField(required=False,validators=[emptyField])
Код файлаviews.py :
from django.shortcuts import render,redirect
from .forms import UserForm
# Create your views here.
def home(request):
return render(request,"Users/home.html")
def registrationPage(request):
if request.method == "POST":
form = UserForm(request.POST)
if form.is_valid():
print("validated")
else:
form=UserForm()
context = {
"form": UserForm
}
return render(request,"Users/register.html",context)
код файла register.html :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title> REGISTRATION PAGE </title>
</head>
<body>
<h1> REGISTRATION PAGE </h1>
<form method="POST">
{% csrf_token %}
{{ form.username }}
{{ form.email }}
{{ form.password }}
{{ form.rePassword }}
<input type="submit" value="ADD">
</form>
</body>
</html>
{% if form.errors %}
{% for field in form %}
{% for error in field.errors %}
<p> {{ error }} </p>
{% endfor %}
{% endfor %}
{% endif %}
вы должны включить это в свой файл шаблона