Ответ 1
Добавьте в форму clean
следующий метод:
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
ИЗМЕНИТЬ
Сообщение об ошибке проверки выше перейдет в non_field_errors
. Вы не указали, какое сообщение об ошибке отображается в каждом поле пароля, но на основе контекста я бы предположил, что это сообщение "Это поле обязательно". Если это так, убедитесь, что ваши поля формы имеют required=False
, когда вы их определяете, или если вы работаете с подклассом формы (и не можете редактировать реальные поля формы), вы можете переопределить метод __init__
форма:
class MyForm(SomeOtherForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['password1'].required = False
self.fields['password2'].required = False