【发布时间】:2017-02-06 21:47:32
【问题描述】:
一点上下文:我正在尝试创建一个 CreateView 页面,供用户在使用位于 URL '/profile/' 的 Django 1.9 时输入信息。
当用户未登录时,我转到 /profile/ url,然后它会按预期将我重定向到登录页面。但是,当我登录该站点,然后转到 /profile/ 时,它会显示此错误:
/profile/ 处的类型错误
__ init __() 接受 1 个位置参数,但给出了 2 个
目前,我正在使用 method_decorator 装饰一个类,如此处的文档中所述:https://docs.djangoproject.com/en/1.10/topics/class-based-views/intro/#decorating-the-class。
这是我的views.py:
@login_required(login_url = "/login/", redirect_field_name = None)
@method_decorator(login_required, name = 'dispatch')
class SpkCreateView(CreateView):
form_class = SpkCreateForm
template_name = 'userprofile/spk_form.html'
def get(self, request):
form = self.form_class(None)
return render(request, self.template_name, {'form': form})
def post(self, request):
form = self.form_class(request.POST)
if form.is_valid():
spk_fname = form.cleaned_data['spk_fname']
spk_lname = form.cleaned_data['spk_lname']
method_decorator 的“名称”参数也让我感到困惑,所以我不确定是否与此有关。
如果有人有任何解决方案,那么谢谢!
编辑:
已更改@login_required(login_url = "/login/", redirect_field_name = None)
@method_decorator(login_required, name = 'dispatch')
致@method_decorator(login_required(login_url = "/login/", redirect_field_name = None), name = 'dispatch')
这是来自 Powershell 的回溯
Internal Server Error: /profile/
Traceback (most recent call last):
File "C:\Users\Programs\Python\Python36-32\lib\site-packag
es\django\core\handlers\base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\Programs\Python\Python36-32\lib\site-packag
es\django\core\handlers\base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
TypeError: __init__() takes 1 positional argument but 2 were given
[28/Sep/2016 22:20:22] "GET /profile/ HTTP/1.1" 500 57532
【问题讨论】:
标签: django django-views