23đź‘Ť
âś…
Add the following to your form’s clean
method:
def clean(self):
password1 = self.cleaned_data.get('password1')
password2 = self.cleaned_data.get('password2')
if password1 and password1 != password2:
raise forms.ValidationError("Passwords don't match")
return self.cleaned_data
EDIT
The validation error message above will go into non_field_errors
. You didn’t specify what error message is showing on each password field, but based on context, I would imagine it’s a “This field is required” message. If that’s the case, make sure that your form fields have required=False
when you define them, or if you’re working with a form subclass (and can’t edit the actual form fields) you can override the __init__
method of the form:
class MyForm(SomeOtherForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['password1'].required = False
self.fields['password2'].required = False
👤Chris Pratt
Source:stackexchange.com