django注册视图工作不正常

django注册视图工作不正常,django,django-templates,django-views,Django,Django Templates,Django Views,我想创建一个注册视图,所以它需要用户名、密码和电子邮件进行注册,我使用的是Django用户模型,但它给了我一个错误 AttributeError at /signup/ 'SignUpForm' object has no attribute 'cleaned_data' 请告诉我如何解决这个问题 forms.py class SignUpForm(forms.Form): username = forms.CharField(widget=forms.TextInput(attrs=

我想创建一个注册视图,所以它需要用户名、密码和电子邮件进行注册,我使用的是Django用户模型,但它给了我一个错误

AttributeError at /signup/
'SignUpForm' object has no attribute 'cleaned_data'
请告诉我如何解决这个问题

forms.py

class SignUpForm(forms.Form):
    username = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Username'}))
    email = forms.EmailField(widget=forms.EmailInput(attrs={'class': 'form-control', 'placeholder': 'Email'}))
    password = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password'}))
    confirm_password = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder':
        'Confirm Password'}), label="Confirm Password")

    class Meta:
        model = User

    def __init__(self, *args, **kwargs):
        super(SignUpForm, self).__init__(*args, **kwargs)
        self.fields['username'].validators.append(ForbiddenUsernamesValidator)
        self.fields['username'].validators.append(InvalidUsernameValidator)
        self.fields['username'].validators.append(UniqueUsernameIgnoreCaseValidator)
        self.fields['email'].validators.append(UniqueEmailValidator)

    def clean(self):
        super(SignUpForm, self).clean()
        password = self.cleaned_data.get('password')
        confirm_password = self.cleaned_data.get('confirm_password')
        if password and password != confirm_password:
            self._errors['password'] = self.error_class(['Passwords don\'t match'])
        return self.cleaned_data
def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST or None)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            email = form.cleaned_data.get('email')
            print(username)
            print(password)
            print(email)
            messages.add_message(request, messages.SUCCESS, 'YOU ARE REGISTRED SUCCESSFULLY')
            return render(request, 'authentication/signup.html', {})
        else:

            return render(request, 'authentication/signup.html', {'form': form})
    else:
        return render(request, 'authentication/signup.html', {'form': SignUpForm})
视图.py

class SignUpForm(forms.Form):
    username = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Username'}))
    email = forms.EmailField(widget=forms.EmailInput(attrs={'class': 'form-control', 'placeholder': 'Email'}))
    password = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password'}))
    confirm_password = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder':
        'Confirm Password'}), label="Confirm Password")

    class Meta:
        model = User

    def __init__(self, *args, **kwargs):
        super(SignUpForm, self).__init__(*args, **kwargs)
        self.fields['username'].validators.append(ForbiddenUsernamesValidator)
        self.fields['username'].validators.append(InvalidUsernameValidator)
        self.fields['username'].validators.append(UniqueUsernameIgnoreCaseValidator)
        self.fields['email'].validators.append(UniqueEmailValidator)

    def clean(self):
        super(SignUpForm, self).clean()
        password = self.cleaned_data.get('password')
        confirm_password = self.cleaned_data.get('confirm_password')
        if password and password != confirm_password:
            self._errors['password'] = self.error_class(['Passwords don\'t match'])
        return self.cleaned_data
def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST or None)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            email = form.cleaned_data.get('email')
            print(username)
            print(password)
            print(email)
            messages.add_message(request, messages.SUCCESS, 'YOU ARE REGISTRED SUCCESSFULLY')
            return render(request, 'authentication/signup.html', {})
        else:

            return render(request, 'authentication/signup.html', {'form': form})
    else:
        return render(request, 'authentication/signup.html', {'form': SignUpForm})