Объект 'SignupForm' не имеет атрибута 'instance' на Django Form

Я работаю на Django 4.0.x и снова и снова сталкиваюсь с одной и той же проблемой при проверке формы.

Всегда вижу: у объекта 'SignupForm' нет атрибута 'instance'

Вот мое мнение:

def signup(request):

if request.method == "POST":
    signup_form = SignupForm(request.POST)
    if signup_form.is_valid():
        email = signup_form.cleaned_data['email']

else:
    signup_form = SignupForm()

return render(request, 'signup.html', {'signup_form': signup_form})

и соответствующий файл forms.py:

class SignupForm(forms.Form):
email = forms.EmailField(label=_("E-Mail Address"), validators=[EmailValidator()])
password = forms.CharField(label=_("Password"), widget=forms.PasswordInput())
password_confirm = forms.CharField(label=_("Confirm Password"), widget=forms.PasswordInput())

def clean_email(self):
    data = self.cleaned_data['email']
    if forms.ValidationError:
        self.add_error('email', forms.ValidationError)
    return data

def clean_password(self):
    data = self.cleaned_data['password']
    try:
        validate_password(data, self.instance)
    except forms.ValidationError as error:
        self.add_error('password', error)
    return data

cleaned_data здесь также ничего не дает.

Я не знаю, что делает ваш метод validate_password, однако, похоже, что проблема возникает из-за self.instance, который вы передаете в качестве одного из его параметров. Использование self вместо self.instance, вероятно, решит вашу проблему.

Вернуться на верх