看到'SignupForm'对象在 Django 窗体上没有属性'instance'



我在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})

和相应的表格.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可能会解决您的问题。

相关内容