我有一个页面,用户可以在其中更改其帐户密码。我制作了一个密码验证表单,但我不知道如何检查“old_password”字段中的密码是否是真正的旧密码。
class ChangePasswordForm(forms.ModelForm):
password_old = forms.CharField(label="", widget=forms.PasswordInput(attrs={'placeholder': 'Type current password'}))
password1 = forms.CharField(label="", widget=forms.PasswordInput(attrs={'placeholder': 'Type a new password'}))
password2 = forms.CharField(label="", widget=forms.PasswordInput(attrs={'placeholder': 'Confirm password'}))
class Meta:
model = Users
fields = ('password_old', 'password1', 'password2',)
def clean_password1(self):
password1 = self.cleaned_data.get('password1')
try:
validate_password(password1, self.instance)
except forms.ValidationError as error:
self.add_error('password1', error)
return password1
def clean_password2(self):
password1 = self.cleaned_data.get("password1")
password2 = self.cleaned_data.get("password2")
if password1 and password2 and password1 != password2:
raise forms.ValidationError("Passwords didn't match")
return password2