这应该是一个简单的问题.我在Django中有两个网址格式:
This should be an easy question. I have two url patterns in Django:
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'),当我访问/wiki/page/test时,它带我进入views.wiki_view.这是对的.我需要第一个模式来捕获"page/"之后的所有字符,这就是我使用.*
When I visit /wiki/page/test, it takes me to views.wiki_view. This is correct. I need the first pattern to capture all characters after the "page/", which is why I used .*
当我访问/wiki/page/时,它也将我带到views.wiki_view.这是不正确的.
When I visit /wiki/page/, it also takes me to views.wiki_view. This is incorrect.
我可以将第二个网址格式更改为:
I could alter the second url pattern to read:
url(r'^wiki/page/$', views.wiki_page_index, name = 'wiki_page_index'),因此,当我访问/wiki/page时,它将带我到views.wiki_page_index.但是我宁愿解决问题而不是避免它.
Thus, when I visit /wiki/page, it will take me to views.wiki_page_index. But I'd rather fix the problem instead of avoiding it.
如何设置第一个网址格式的格式,以使它不会占用/wiki/page/的实例?
推荐答案将第二个放在当前第一个之前.
Place the second one before the current first one.
docs.djangoproject/en/dev/topics/http/urls/("Django按顺序遍历每个URL模式,并在与所请求URL匹配的第一个URL模式处停止."
docs.djangoproject/en/dev/topics/http/urls/ ("Django runs through each URL pattern, in order, and stops at the first one that matches the requested URL.")
更多推荐
Django URL模式
发布评论