0
0 комментариев

помогите пожалуйста исправить ошибку

я проверяю в forms.py пароль пользователя

from django import forms
from userprofile.models import UserProfile
from django.contrib.auth.models import User
from django.forms import ModelForm
 
class ChangePasswordForm(forms.Form):
    password_old = forms.CharField(max_length=30)
    password1 = forms.CharField(widget=forms.PasswordInput())
    password2 = forms.CharField(widget=forms.PasswordInput())
 
    def clean_password_old(self):
        cleaned_data = self.cleaned_data
        password_old = cleaned_data.get("password_old")
        if not User.check_password(password_old):
            raise forms.ValidationError("Passwords is not correct")
        else:
            return cleaned_data
 
    def clean(self):
        cleaned_data = self.cleaned_data
        password1 = cleaned_data.get("password1")
        password2 = cleaned_data.get("password2")
 
        if password1 != password2:
            raise forms.ValidationError("Passwords must be same")
        else:
            return cleaned_data

но после отправки формы получаю на экран следующее сообщение об ошибке:

TypeError at /userprofile/password_page/
check_password() missing 1 required positional argument: 'raw_password'
Request Method: POST
Request URL:    <a href="http://127.0.0.1:8000/userprofile/password_page/">http://127.0.0.1:8000/userprofile/password_page/</a>
Django Version: 1.6.2
Exception Type: TypeError
Exception Value:
check_password() missing 1 required positional argument: 'raw_password'

то есть проблема в проверке пароля (password_old) перед операцией замены(с операцией замены проблем нет, она в представлении)


Добавить комментарий