Python __init_;()正好接受1个参数(给定2个),出了什么问题?

Python __init_;()正好接受1个参数(给定2个),出了什么问题?,python,django,Python,Django,这基本上是我正在工作的站点的注册表单,它也不工作,但我现在的主要问题是\uuuu init\uuu错误。你能检查出什么地方出了问题吗 views.py: from django.views.generic.edit import FormView from django.views.decorators.csrf import csrf_protect from django.core.context_processors import csrf from django.contrib impo

这基本上是我正在工作的站点的注册表单,它也不工作,但我现在的主要问题是
\uuuu init\uuu
错误。你能检查出什么地方出了问题吗

views.py:

from django.views.generic.edit import FormView
from django.views.decorators.csrf import csrf_protect
from django.core.context_processors import csrf
from django.contrib import auth
from authactions import forms
from authactions.forms import CreateForm

class SignupView(FormView):
    template_name = 'authactions/register.html'
    form_class = forms.CreateForm

def form_valid(self, form):
    profile = form.saveUser()
    user = authenticate(username=profile.user.username ,password=profile.user.password)
    auth.login(self.request,user)
    return HttpResponseRedirect('/profiles/')
forms.py:

from django import forms
from profiles.models import UserProfile
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm

class CreateForm(UserCreationForm):
    username = forms.CharField(required=True)
    password = forms.CharField(widget=forms.PasswordInput())
    password2 = forms.CharField(widget=forms.PasswordInput())
    email = forms.EmailField(required=True)

class Meta:
    model = UserProfile
    fields = ("username", "password", "password2", "email")

def saveUser(self):
    user = super(UserCreationForm, self).save()
    user.username = self.cleaned_data['username']
    user.password = self.cleaned_data['password']
    user.password2 = self.cleaned_data['password2']
    user.email = self.cleaned_data['email']
    if user.password != user.password2:
        raise forms.ValidationError("Mismatched password!")
    user.save()
    return user

class LoginForm(forms.Form):
    username = forms.CharField(required=True)
    password = forms.CharField(widget=forms.PasswordInput())
html:

回溯:

Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/register/

Django Version: 1.6
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'authactions',
'blog',
'profiles')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')


Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
          114.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)

Exception Type: TypeError at /register/
Exception Value: __init__() takes exactly 1 argument (2 given)

我无法判断它是复制粘贴还是您的代码实际上看起来像那样,但是
类Meta
必须在
CreateForm
类中缩进。事实上,
saveUser
方法也必须缩进。

我不知道它是复制粘贴还是您的代码实际上是这样的,但是
类Meta
必须在
CreateForm
类中缩进。事实上,
saveUser
方法也必须缩进。

我不知道它是复制粘贴还是您的代码实际上是这样的,但是
类Meta
必须在
CreateForm
类中缩进。事实上,
saveUser
方法也必须缩进。

我不知道它是复制粘贴还是您的代码实际上是这样的,但是
类Meta
必须在
CreateForm
类中缩进。事实上,
saveUser
方法也必须缩进。

您不显示URL.py,但问题可能在于:映射基于类的视图时需要使用as\u视图:

url('^register/$', SignupView.as_view(), name='register')

您没有显示URL.py,但问题可能存在:在映射基于类的视图时,需要使用as_视图:

url('^register/$', SignupView.as_view(), name='register')

您没有显示URL.py,但问题可能存在:在映射基于类的视图时,需要使用as_视图:

url('^register/$', SignupView.as_view(), name='register')

您没有显示URL.py,但问题可能存在:在映射基于类的视图时,需要使用as_视图:

url('^register/$', SignupView.as_view(), name='register')


如果您还可以包括Django提供给您的回溯,这将允许其他人准确地确定问题的来源。StackOverflow欢迎使用最少的复制器出现错误。一个代码转储,即使所有内容都是模糊相关的,也绝不是最小的。(另一方面,一个太小而不能再现问题的问题根本不是再现者;把你的问题缩小到最小的东西,这会产生一个给定的问题,但不是更小的问题,这是一种艺术,但却是一种重要的问题)。信息太多了!我很抱歉,但我真的不知道这个错误是从哪里来的。我已经重新收集了所有最近的更改,它仍然存在。已经仔细阅读了我的代码,但仍然不知道,对不起,get或post请求是否发生错误?这可能有助于缩小范围。如果您还可以包括Django提供给您的回溯,这将允许其他人准确地确定问题的来源。StackOverflow欢迎使用最少的复制器出现错误。一个代码转储,即使所有内容都是模糊相关的,也绝不是最小的。(另一方面,一个太小而不能再现问题的问题根本不是再现者;把你的问题缩小到最小的东西,这会产生一个给定的问题,但不是更小的问题,这是一种艺术,但却是一种重要的问题)。信息太多了!我很抱歉,但我真的不知道这个错误是从哪里来的。我已经重新收集了所有最近的更改,它仍然存在。已经仔细阅读了我的代码,但仍然不知道,对不起,get或post请求是否发生错误?这可能有助于缩小范围。如果您还可以包括Django提供给您的回溯,这将允许其他人准确地确定问题的来源。StackOverflow欢迎使用最少的复制器出现错误。一个代码转储,即使所有内容都是模糊相关的,也绝不是最小的。(另一方面,一个太小而不能再现问题的问题根本不是再现者;把你的问题缩小到最小的东西,这会产生一个给定的问题,但不是更小的问题,这是一种艺术,但却是一种重要的问题)。信息太多了!我很抱歉,但我真的不知道这个错误是从哪里来的。我已经重新收集了所有最近的更改,它仍然存在。已经仔细阅读了我的代码,但仍然不知道,对不起,get或post请求是否发生错误?这可能有助于缩小范围。如果您还可以包括Django提供给您的回溯,这将允许其他人准确地确定问题的来源。StackOverflow欢迎使用最少的复制器出现错误。一个代码转储,即使所有内容都是模糊相关的,也绝不是最小的。(另一方面,一个太小而不能再现问题的问题根本不是再现者;把你的问题缩小到最小的东西,这会产生一个给定的问题,但不是更小的问题,这是一种艺术,但却是一种重要的问题)。信息太多了!我很抱歉,但我真的不知道这个错误是从哪里来的。我已经重新收集了所有最近的更改,它仍然存在。已经仔细阅读了我的代码,但仍然不知道,对不起,get或post请求是否发生错误?这可能有助于缩小范围。