2014-09-30 78 views
-1

这是我view.py的Django 1.7:some_name()到底需要2个参数(1给出)

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) 

这是我的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'), 
) 

当我尝试去这个本地主机:8000 /时间/加/ 24/ 我有错误hours_ahead()到底需要2个参数(给定1)

回答

0

偏移缺少在这里:

url(r'$', 'mysite.view.hours_ahead', name='hours_ahead'), 
3

您需要capture的从URL偏移:

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

其中(\d+)是将捕获一个或多个数字捕获组。在localhost:8000/time/plus/24/的情况下,它将捕获24

+0

非常感谢! – 2014-09-30 05:26:46

相关问题