gpt4 book ai didi

python - Django修改密码问题,super(type, obj) : obj must be an instance or subtype of type

转载 作者:太空狗 更新时间:2023-10-29 20:39:37 32 4
gpt4 key购买 nike

我的 changepassword 表单有一些问题,它继续给我同样的错误:super(type, obj): obj must be an instance or subtype of type

这是我的表格:

class PasswordChangeForm(forms.Form):
current_password = forms.CharField(label=u'Current Password', widget=forms.PasswordInput(render_value=False))
new_password = forms.CharField(label=u'New Password', widget=forms.PasswordInput(render_value=False))
retyped_password = forms.CharField(label=u'Retype New Password', widget=forms.PasswordInput(render_value=False))

def __init__(self, data=None, user=None, *args, **kwargs):
self.user = user
super(UserProfileEditForm, self).__init__(data=data, *args, **kwargs)

def clean_current_password(self):
cleaned_data = self.cleaned_data
current_password = cleaned_data.get('current_password', '')

if not self.user.check_password(current_password):
raise ValidationError('Wrong current password.')

return current_password

def clean(self):
cleaned_data = self.cleaned_data
new_password = cleaned_data.get('new_password', '')
retyped_password = cleaned_data.get('retyped_password', '')

if len(new_password) == 0 or len(retyped_password) == 0:
raise ValidationError('Blank password fields.')

if new_password != retyped_password:
raise ValidationError('New password and retyped password do not match.')

return cleaned_data

def save(self):
self.user.set_password(new_password)
return self.user

有什么想法吗?

最佳答案

您的问题在这一行:

super(UserProfileEditForm, self).__init__(data=data, *args, **kwargs)

应该是

super(PasswordChangeForm, self).__init__(data=data, *args, **kwargs)

当您从其他表单复制时,这可能是一个复制粘贴问题。

更多 context here

关于python - Django修改密码问题,super(type, obj) : obj must be an instance or subtype of type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24633601/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com