Django错误:取0位置参数但给出1

时间:2015-03-06 21:06:52

标签: python django

我正在尝试在EC2 ubuntu实例上设置django。

在我看来,我有:

from django.shortcuts import render, HttpResponse
import requests


def test(request):
    return HttpResponse('hi')

urls.py:

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'tp.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    url(r'^index/$', 'tp1.views.index', name='index'),
    url(r'^test/$', 'tp1.views.test', name='test'),    

    # url(r'^admin/', include(admin.site.urls)),
)

我收到上面的错误。我做错了什么?

编辑;

 Environment:    


 Request Method: GET
 Request URL: http://52.10.**-**:8000/test/  

 Django Version: 1.7.5
 Python Version: 3.4.0
 Installed Applications:
 ('django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'tp1')
 Installed Middleware:
 ('django.contrib.sessions.middleware.SessionMiddleware',
  'django.middleware.common.CommonMiddleware',
  'django.middleware.csrf.CsrfViewMiddleware',
  'django.contrib.auth.middleware.AuthenticationMiddleware',
  'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
  'django.contrib.messages.middleware.MessageMiddleware',
  'django.middleware.clickjacking.XFrameOptionsMiddleware')  


 Traceback:
 File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
   111.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)  

 Exception Type: TypeError at /test/
 Exception Value: test() takes 0 positional arguments but 1 was given

2 个答案:

答案 0 :(得分:0)

您问题中的代码看起来不错,但test()视图函数需要一个位置参数(request),因此您问题中的代码不是代码提出了这个例外。

您是否遗漏了任何代码(可能您稍后在test文件中重新定义views.py)?该代码位于tp1/views.py或其他文件的顶部吗?

答案 1 :(得分:0)

在此代码中:

 urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'tp.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    url(r'^index/$', 'tp1.views.index', name='index'),
    url(r'^test/$', 'tp1.views.test', name='test'),    

    # url(r'^admin/', include(admin.site.urls)),
)

将方括号更改为方括号:

urlpatterns = patterns['',
    # Examples:
    # url(r'^$', 'tp.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    url(r'^index/$', 'tp1.views.index', name='index'),
    url(r'^test/$', 'tp1.views.test', name='test'),    

    # url(r'^admin/', include(admin.site.urls)),
]