我的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>')
和imy 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'),
一切顺利!
我该如何解决?
答案 0 :(得分:3)
请勿在正则表达式中使用. +
。它将匹配所有字符,包括斜杠。通常,你会使用[-\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'),