【问题标题】:Django 1.7: some_name() takes exactly 2 arguments (1 given)Django 1.7:some_name() 正好接受 2 个参数(1 个给定)
【发布时间】:2014-11-24 15:13:54
【问题描述】:

这是我的观点.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)

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

当我尝试访问这个 localhost:8000/time/plus/24/ 我有错误 hours_ahead() 恰好需要 2 个参数(1 个给定)

【问题讨论】:

    标签: python django django-urls


    【解决方案1】:

    这里缺少偏移量:

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

    【讨论】:

      【解决方案2】:

      你需要capture与url的偏移量:

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

      其中(\d+) 是一个捕获组,可以捕获一个或多个数字。如果是localhost:8000/time/plus/24/,它将捕获24

      【讨论】:

        猜你喜欢
        • 2018-04-12
        • 1970-01-01
        • 2012-06-20
        • 2015-07-03
        • 1970-01-01
        • 2018-09-12
        • 1970-01-01
        • 1970-01-01
        • 2012-07-02
        相关资源
        最近更新 更多