0

菜鸟问题可以肯定。我正在研究 Practical Django Projects, Second Edition 的 coltrane 项目。

我的 urlpattern 条目是:

(r'^blog/(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$', 'coltrane.views.entry_detail'),

实际网址为:127.0.0.1:8000/blog/2012/sep/17/thank-you-very-much

实际 URL 不会触发与 urlpattern 条目关联的视图 - 'coltrane.views.entry_detail'。相反,它会在 url 模式元组的末尾触发包罗万象的模式。包罗万象的模式是:

(r'', include('django.contrib.flatpages.urls')),

当浏览器尝试加载页面时,manage.py 报告:[18/Sep/2012 10:59:31] "GET /blog/2012/sep/17/thank-you-very-much HTTP/1.1" 404 1667

调试页面报告 Page not found, No FlatPage 与给定查询匹配。

据我所知,一切都井井有条。那么我在这里的简单 NOOB 错误是什么?

4

2 回答 2

2

改变“P?” 在捕捉蛞蝓场时到“?P”。(P?[-\w]+) => (?P[-\w]+)

于 2012-09-18T16:19:08.117 回答
2

您必须在 url 末尾附加斜杠,因为您的正则表达式定义斜杠应在 url ( /$)末尾匹配

所以改成:

127.0.0.1:8000/blog/2012/sep/17/thank-you-very-much/
于 2012-09-18T17:02:00.480 回答