class RegisterForm(models.Form): username = forms.CharField() password = forms.CharField() password_confirm = forms.CharField()
Почитав доки, понял, что валидация должна выглядеть как-то так:
def valid_password_confirm(password, confirm): if password != confirm: raise forms.ValidationError("Passwords are different.")
В доках нашел способ с переопределением метода clean().
Сделал так:
class RegisterForm(models.Form): username = forms.CharField() password = forms.CharField() password_confirm = forms.CharField() def clean(self): cleaned_data = super().clean() valid_password_confirm( cleaned_data["password"], cleaned_data["password_confirm"] )
Нужно поведение как у дефолтной валидации, как, например, если бы не проходило условие max_length.