【问题标题】:django url with two slugs coflictdjango url 有两个蛞蝓冲突
【发布时间】:2015-07-15 22:13:58
【问题描述】:

我的 urls.py 中有

url(r'^(?P<slug>.+)/$', page, name='page'),
url(r'^(?P<slug1>.+)/(?P<slug2>.+)/$', subpage, name='subpage'),

页面和子页面是两个不同模型中的两个功能。

在我的 app1/views.py 中

def page(request, slug):
    try :
       #some code
    except myModel.DoesNotExist:
       return HttpResponseNotFound('<h1>not found</h1>')

还有我的 app2/views.py

def page(request, slug1, slug2):
    try :
       #some code
    except myModel.DoesNotExist:
       return HttpResponseNotFound('<h1>not found</h1>')

问题是我没有得到子页面!

如果我将网址更改为

url(r'^AAAA(?P<slug>.+)/$', page, name='page'),
url(r'^BBBB(?P<slug1>.+)/(?P<slug2>.+)/$', subpage, name='subpage'),

一切顺利!

我该如何解决?

【问题讨论】:

    标签: django django-urls


    【解决方案1】:

    不要在正则表达式中使用. +。它将匹配所有字符,包括斜杠。通常,您会使用[-\w]+,它匹配字母 a-z 和 A-Z、数字 0-9、连字符和下划线。

    url(r'^(?P<slug>[-\w]+)/$', page, name='page'),
    url(r'^(?P<slug1>[-\w]) /(?P<slug2>[-\w]+)/$', subpage, name='subpage'),
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-22
      • 2019-02-21
      • 2015-01-06
      • 2021-04-04
      • 2011-10-18
      • 2013-12-18
      • 2018-03-03
      • 1970-01-01
      相关资源
      最近更新 更多