0

我是 Django 中另一个表单的子类:

class RegistrationForm(forms.Form):
    ...
    def clean_password(self):
            if not re.search('[a-zA-Z]', self.data['password']):
                raise forms.ValidationError('Must contain a letter.')
            return self.data['password']

class addNewFamilyMemberForm(RegistrationForm):
    ...
    def clean_password(self):
        if self.data["username"]:
            super.clean_password(self)
        return self.data["password"]

为什么 Django 会产生这个错误?

type object 'super' has no attribute 'clean_password'

的超类addNewMemberForm显然有一个clean_password功能。

4

2 回答 2

5

在 Python 2 中,您需要像这样使用 super:

super(addNewFamilyMemberForm, self).clean_password()

您可能应该以某种方式使用返回值,但我不确定如何使用。

此外,类名应该以大写字母开头,但这并不影响它的工作方式。

于 2012-06-03T01:53:38.233 回答
1

super 实际上不是一个对象,你不能做“super.method”。也许你应该把那条线改成类似

super(addNewFamilyMemberForm, self).clean_password()
于 2012-06-03T01:54:32.983 回答