Django 1.7: some_name () nimmt genau 2 Argumente (1 gegeben)

Das ist mein view.py

from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html) def hours_ahead(request, offset): offset = int(offset) dt = datetime.datetime.now() + datetime.timedelta(hours=offset) html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt) return HttpResponse(html) 

Das ist mein urls.py

 from django.conf.urls import patterns, url, include from mysite.view import current_datetime, hours_ahead urlpatterns = patterns('', # Examples: # url(r'^$', 'mysite.views.home', name='home'), # url(r'^blog/', include('blog.urls')), # url(r'^admin/', include(admin.site.urls)), (r'^time/$', current_datetime), #(r'^time/plus/\d{1,2}/$', hours_ahead), url(r'$', 'mysite.view.hours_ahead', name='hours_ahead'), ) 

Wenn ich versuche, zu diesem localhost zu gehen: 8000 / time / plus / 24 / Ich habe den Fehler hours_ahead () nimmt genau 2 Argumente (1 gegeben)

2 Solutions collect form web for “Django 1.7: some_name () nimmt genau 2 Argumente (1 gegeben)”

Sie müssen den Offset von der URL erfassen :

 url(r'^time/plus/(\d+)/$', 'mysite.view.hours_ahead', name='hours_ahead'), 

Wo (\d+) ist eine Erfassungsgruppe, die eine oder mehrere Ziffern erfassen würde. Im Falle von localhost:8000/time/plus/24/ würde es einfangen 24 .

Offset fehlt hier:

 url(r'$', 'mysite.view.hours_ahead', name='hours_ahead'), 
Python ist die beste Programmiersprache der Welt.