Django /accounts/register/RegistrationForm()处的TypeError正好接受1个参数(给定0)?

Django /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:

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:
        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。如果您更改了,请更新问题