Валидация пароля в django не работает
Я пытаюсь построить ванильную систему регистрации пользователей на django, используя пользовательскую форму регистрации. Я хотел бы проверять правильность пароля без перезагрузки страницы. Я испытываю трудности как с требованием соответствия паролей стандартному набору требований к паролям django, так и с проверкой соответствия двух паролей. Я хочу добиться того, чтобы поля паролей вели себя так же, как поле электронной почты. В поле электронной почты, если символ @ отсутствует, появляется всплывающее окно с сообщением о необходимости его изменения. Однако, если пароли не совпадают или содержат очень мало символов, я все равно могу отправить форму. Является ли это ожидаемым поведением или что-то идет не так? Я знаю, что могу проверить правильность формы без перезагрузки (например, используя ajax для проверки is_valid() на форме) после ее отправки, но я пытаюсь понять, нужно ли это делать?
вот моя форма
class registration_form(UserCreationForm):
username = forms.Field(widget=forms.TextInput(attrs={'class': "form-field w-input", 'placeholder': 'Username'}))
email = forms.Field(widget=forms.EmailInput(attrs={'class': "form-field w-input", 'placeholder': 'Email address'}))
password1 = forms.Field(widget=forms.PasswordInput(attrs={ 'class': "form-field w-input", 'placeholder': 'Password'}))
password2 = forms.Field(widget=forms.PasswordInput(attrs={ 'class': "form-field w-input", 'placeholder': 'Repeat Password'}))
class Meta:
model = User
fields = ('username',)
Вот соответствующая часть моего шаблона
<form action="{%url 'signup' %}" method="POST">
{% csrf_token %}
{{ registration_form.non_field_errors }}
{{ registration_form.source.errors }}
{{ registration_form.source }}
<div class="div-block-register-text">
<div class="fieldWrapper">
{{ registration_form.username.errors }}
{{ registration_form.username}}
</div>
<div class="fieldWrapper">
{{ registration_form.email.errors }}
{{ registration_form.email}}
</div>
<div class="fieldWrapper">
{{ registration_form.password1.errors }}
{{ registration_form.password1}}
</div>
<div class="fieldWrapper">
{{ registration_form.password2.errors }}
{{ registration_form.password2}}
</div>
</div>
вот соответствующая часть представления
class CustomLoginView(View):
def get(self,request):
context = {'registration_form': registration_form,
'login_form':AuthenticationForm}
template = 'homepage/login-register.html'
return render(request,template,context=context)