3
我有一個文件forms.py,我定義了所有的表單。我需要在我的一個表單域上進行密碼驗證。訪問request.user outside views.py
在我forms.py
class ChangePasswordForm(forms.Form):
old_password = forms.CharField(widget=forms.PasswordInput)
new_password= forms.CharField(widget=forms.PasswordInput)
new_password_again= forms.CharField(widget=forms.PasswordInput)
def clean_old_password(self):
data = self.cleaned_data['old_password']
if data != currently_logged_in_user.password:
raise forms.ValidationError("Password Incorrect")
return data
我需要訪問在當前登錄的用戶,所以我可以用currently_logged_in_user.password
的驗證,但我目前在forms.py
工作不views.py
,所以我不知道該怎麼做所以?請幫助
數據= self.user.password始終計算爲True值,所以我用AUTH =身份驗證( username = self.user.username,password = data)。它工作謝謝 – flexxxit
是的,'self.user.password'將是散列值,包括鹽。 [從文檔](https://docs.djangoproject.com/en/1.4/topics/auth/#manually-managing-a-user-s-password),「如果您想通過手動驗證用戶將明文密碼與數據庫中的哈希密碼進行比較,使用便利函數'django.contrib.auth.hashers.check_password()'「。 – supervacuo