Django 'super 对象没有属性 clean_password1()

0 投票
1 回答
604 浏览
提问于 2025-04-17 21:31

我正在尝试对Django默认的用户创建表单进行子类化,但在这个函数中遇到了问题:

def clean_password1(self):
    password = self.cleaned_data['password1']
    if len(password) < 8:
        raise ValidationError('Password too short')
    return super(UserRegistrationForm, self).clean_password1()

在这段代码的最后一行,它抛出了一个错误,正是我在标题中提到的。我试过使用clean_password、clean_password()和clean_password1(),但是都没有效果。我的Django版本是1.6.2,问题出在哪里呢?

我查看了这个问题以寻求建议。

1 个回答

3

在GitHub上的Django代码中,你会发现没有叫做 clean_password1clean_password 的方法。不过有一个叫 clean_password2 的方法 :) 由于没有对密码进行特别的检查,我建议你直接写

return password

编辑 嗯,是的,确实有一个特别的检查,密码必须是一样的。不过这个检查无论你叫它什么,反正都会执行。

撰写回答