刚开始使用Django并找出URL调度程序。从我在文档中看到的内容,以下正则表达式应该捕获news/story/2012/10/23/this-is-my-first-story
urlpatterns = patterns('news.views',
url(r'^$', 'index'),
url(r'^news/story/(?P<year>\d{4})/(?P<month>\d){2}/(?P<day>\d){2}/(?P<title_key>\w+)/$', 'story'),
)
但是,我收到以下错误...
使用
mysite.urls
中定义的URLconf,Django按以下顺序尝试了这些URL模式:
^polls/
^news/
^$
^news/
^news/story/(?P<year>\d)/(?P<month>\d)/(?P<day>\d)/(?P<title_key>\d)/$
^admin/doc/
^admin/
当前网址
news/story/2012/10/23/this-is-my-first-story
与其中任何网址都不匹配。
答案 0 :(得分:4)
首先,每个模式只接受一位数。您需要将其修改为\d+
或更合适,\d{4}
为year
,\d{2}
为month
和day
。
其次,title_key
的最后一个模式设置为仅接受数字(\d
),如果你想要一个slug,你应该使用[\w-]+