以下是urls.py中的代码:
urlpatterns = patterns('',
('^meta/\d{4}/$',metadata),
)
在view.py中,我只是打印请求或args:
def metadata(request,*args, **kwargs):
return HttpResponse(str(args))
#return HttpResponse(str(request))
问题在于,无论我使用请求还是args,我都无法获得'year' arg。
例如,当我输入url:http://127.0.0.1:8000/meta/1990/
时,它应该返回 1990 ,但事实并非如此。
根据Django的书,使用非命名组将正确返回args。
顺便说一句,如果我使用命名组,它工作正常,args保存在kwargs中。
答案 0 :(得分:2)
您需要在要捕获的正则表达式部分周围放置括号。例如,
urlpatterns = patterns('',
('^meta/(\d{4})/$',metadata),
)