Django:在urls.py中不使用非命名组时无法找到args

时间:2014-01-23 03:30:16

标签: python django

以下是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中。

1 个答案:

答案 0 :(得分:2)

您需要在要捕获的正则表达式部分周围放置括号。例如,

urlpatterns = patterns('',
    ('^meta/(\d{4})/$',metadata),
)