django 中 urlpatterns 列表中的顺序有要求吗

2016-11-17 10:18:11 +08:00
 lovebeyondalways

有一条规则如下---简称 A
url(r'^(?P<category>\w+)/$', views.Category_list, name='category'),
在这条 A 规则后面的 url 都不生效 点击都没法跳转
但是把 url 放到 A 前面就生效了
A 的 views 如下:

def Category_list(request, category):
    try:
        category_post = article.objects.filter(category__name__iexact=category)
        paginator = Paginator(category_post, 2)
        page = request.GET.get('page')
        try:
            category_post = paginator.page(page)
        except PageNotAnInteger:
            category_post = paginator.page(1)
        except EmptyPage:
            category_post = paginator.paginator(paginator.num_pages)
    except article.DoesNotExist:
        raise Http404
    return render(request, 'category.html', {"category_post": category_post, "error":False})
3620 次点击
所在节点    Django
7 条回复
doer233
2016-11-17 10:23:57 +08:00
有顺序要求的。
glasslion
2016-11-17 10:24:18 +08:00
1. 一个 url 刻意被多条规则匹配的话, 会用第一条规则
2. 你那条规则 A 都包含^ \w+/$'了, 覆盖掉其他规则, 不奇怪
creaer
2016-11-17 11:05:32 +08:00
那就是你写的被前面的匹配到了
NaVient
2016-11-17 11:06:13 +08:00
有的 如果你写的第一条被匹配到了,后面不再匹配
linuxchild
2016-11-18 00:55:05 +08:00
前面说的都对…这个实际上文档过一遍就知道了
wangycc
2016-11-18 14:33:50 +08:00
实际动手测试下,不符合预期,看下源码
lovebeyondalways
2016-11-18 17:41:34 +08:00
interesting

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/321105

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX