Django /accounts/register/RegistrationForm()处的TypeError正好接受1个参数(给定0)?
accounts/forms.pyDjango /accounts/register/RegistrationForm()处的TypeError正好接受1个参数(给定0)?,django,django-models,django-forms,django-views,django-rest-framework,Django,Django Models,Django Forms,Django Views,Django Rest Framework,accounts/forms.py from django import forms from django.contrib.auth.models import User from django.contrib.auth.forms import UserCreationForm def RegistrationForm(UserCreationForm): email = forms.EmailField(required=True) class Meta:
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
def RegistrationForm(UserCreationForm):
email = forms.EmailField(required=True)
class Meta:
model = User
fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2')
def save(self, commit=True):
user = super(RegistrationForm, self).save(commit=False)
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.email = self.cleaned_data['email']
if commit:
user.save()
return user
accounts/views.py
from django.shortcuts import render, redirect
from accounts.forms import RegistrationForm
def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
form.save()
return redirect('/accounts')
else :
form = RegistrationForm()
args ={'form':form}
return render(request, 'accounts/registration_form.html', args)
我得到了这个错误
/accounts/register/RegistrationForm()处的TypeError正好取1
参数(给定0)
您需要在表单声明中使用class关键字
class RegistrationForm(UserCreationForm):
此外,缩进已关闭,您需要在视图中进行一些更改
使用if语句的else部分生成args和return语句
def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
form.save()
return redirect('/accounts')
else :
form = RegistrationForm()
args ={'form':form}
return render(request, 'accounts/registration_form.html', args)
不,这不是同一个问题。你可以发布完整的堆栈跟踪吗?我无法在我的代码中添加,它说你的代码似乎主要是代码内部服务器错误:/accounts/register/Traceback(最近的调用最后):File“/home/asif/Desktop/youtube/max/local/lib/python2.7/site packages/django/core/handlers/exception.py”,第41行,在第249行的“内部响应=获取响应(请求)文件”//home/asif/Desktop/youtube/max/local/lib/python2.7/site packages/django/core/handlers/base.py”中,第187行的“获取响应(请求)文件”//home/asif/Desktop/youtube/max/local/lib/python2.7/site packages/django/core/handlers/base.py”中,在第185行,通过中间件(e,请求)文件“/home/asif/Desktop/youtube/max/local/lib/python2.7/site packages/django/core/handlers/base.py”处理异常“/home/asif/Desktop/youtube/tutorial/accounts/views.py”,第30行,在register form=RegistrationForm()中,请注意它应该是
class RegistrationForm
使用关键字“class”,而不是“def”RegistrationForm。如果您更改了,请更新问题