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

2016 年 11 月 17 日
 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})
4661 次点击
所在节点    Django
7 条回复
doer233
2016 年 11 月 17 日
有顺序要求的。
glasslion
2016 年 11 月 17 日
1. 一个 url 刻意被多条规则匹配的话, 会用第一条规则
2. 你那条规则 A 都包含^ \w+/$'了, 覆盖掉其他规则, 不奇怪
creaer
2016 年 11 月 17 日
那就是你写的被前面的匹配到了
NaVient
2016 年 11 月 17 日
有的 如果你写的第一条被匹配到了,后面不再匹配
linuxchild
2016 年 11 月 18 日
前面说的都对…这个实际上文档过一遍就知道了
wangycc
2016 年 11 月 18 日
实际动手测试下,不符合预期,看下源码
lovebeyondalways
2016 年 11 月 18 日
interesting

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

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

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

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

© 2021 V2EX