我正在尝试获得这样的网址结构。
http://example.com/blog/1/title-name-goes-here
我的主要网址文件包含此行。
url(r'^blog/', include('blog.urls')),
在我的blog.urls中我有
urlpatterns = patterns('',
(r'', 'blog.views.index'),
(r'^(?P<entry_id>\d+)/(?P<slug>[a-zA-Z0-9_.-]+)/$', 'blog.views.entry'),
)
我的问题是当我访问/blog/1/some-title
时,我调用了索引视图,而不是条目视图方法。路线的顺序也无关紧要。
我认为正则表达式是错误的。我仍然不善于他们。
答案 0 :(得分:1)
尝试:
urlpatterns = patterns('',
(r'^(?P<entry_id>\d+)/(?P<slug>[-\w]+)/$', 'blog.views.entry'),
(r'^$', 'blog.views.index'),
)
请注意下方图案中的克拉和美元符号表示空图案。您应该(通常)按照需要匹配的组数量的顺序放置您的模式,例如/ id / slug / title / above / id / slug / above / id /,因为URLconf选择了第一个匹配项。您可以使用RegexPal在线测试您的模式,这很方便
我还使用\ w(单词,数字下划线将slug更改为更简单的slug模式 - 我不确定你是否特别想要在slugs中匹配点?)