Django无法匹配url的日期

时间:2013-08-06 18:03:39

标签: regex django urlconf

我有一个简单的应用程序,并希望主页将日期作为url参数。

url(
    regex=r'^$',
    view=HomeView.as_view(),
    name='home'
    ),
url(
    regex=r'^/(?P<date>\d{2}-\d{2}-\d{4})/$',
    view=HomeView.as_view(),
    name='home'
    ), 

但是当我在运行时(在localhost上)转到127.0.0.1:8000/08-01-2013会导致找不到404页面。我的正则表达式有问题吗?

2 个答案:

答案 0 :(得分:3)

而不是:

r'^/(?P<date>\d{2}-\d{2}-\d{4})/$'

使用:

r'^(?P<month>\d{2})-(?P<day>\d{2})-(?P<year>\d{4})/$'

答案 1 :(得分:3)

来自URL dispatcher docs

  

不需要添加前导斜杠,因为每个URL都有。例如,它是^文章,而不是^ /文章。

所以正确的正则表达式(因为你说你不需要分解日期组件)是:

r'^(?P<date>\d{2}-\d{2}-\d{4})/$'

我看到falinsky的答案也纠正了领先的斜线。