user1592380
user1592380

Reputation: 36317

Django error : takes 0 positional arguments but 1 was given

I'm trying to set up django on an EC2 ubuntu instance.

In my view I have:

from django.shortcuts import render, HttpResponse
import requests


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

urls.py have:

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)),
)

I'm getting the error above. What am I doing wrong?

edit;

 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

Upvotes: 1

Views: 9748

Answers (2)

Vignesh
Vignesh

Reputation: 21

in this code:

 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)),
)

change the brackets into square brackets:

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)),
]

Upvotes: 0

Daniel Hawkins
Daniel Hawkins

Reputation: 1165

The code in your question looks fine, but the test() view function takes one positional argument (request), so the code in your question is not the code that raised that exception.

Did you leave out any code (maybe you re-defined test later in the views.py file)? Is that code at the top from tp1/views.py or some other file?

Upvotes: 1

Related Questions