Django网址模式

Ed.*_*Ed. 1 django url

这应该是一个简单的问题.我在Django中有两个url模式:

url(r'^wiki/page/(?P<page_title>.*)', views.wiki_view, name = 'wiki_view'),
url(r'^wiki/page/$', views.wiki_page_index, name = 'wiki_page_index'),
Run Code Online (Sandbox Code Playgroud)

当我访问/ wiki/page/test时,它会将我带到views.wiki_view.这是对的.我需要第一个模式来捕获"page /"之后的所有字符,这就是我使用的原因.*

当我访问/ wiki/page /时,它也会将我带到views.wiki_view.这是不正确的.

我可以改变第二个url模式:

url(r'^wiki/page/$', views.wiki_page_index, name = 'wiki_page_index'),
Run Code Online (Sandbox Code Playgroud)

因此,当我访问/ wiki/page时,它将带我到views.wiki_page_index.但我宁愿解决问题而不是避免它.

如何格式化第一个url模式,以便它不会获取/ wiki/page /的实例?

Ign*_*ams 7

将第一个更改为:

url(r'^wiki/page/(?P<page_title>.+)', views.wiki_view, name = 'wiki_view'),
Run Code Online (Sandbox Code Playgroud)


ini*_*all 5

将第二个放在当前第一个之前.

http://docs.djangoproject.com/en/dev/topics/http/urls/("Django 按顺序遍历每个URL模式,并在第一个匹配请求的URL的位置停止.")