在浏览器中我得到: 请求网址:http://xxxxxx:8000/person/test/
使用person.urls中定义的URLconf,Django按以下顺序尝试了这些URL模式:
^person/ ^$
^person/ ^person/(?P<slug>[-\w]+)/$
^admin/
当前网址person/test/
与其中任何网址都不匹配。
在python shell中我得到:
import re
url = 'person/test/'
pattern = re.compile(r'^person/(?P<slug>[-\w]+)/$'
re.match(pattern,url)
<_sre.SRE_Match object at 0xb7716860>
所以它显然应该匹配正则表达式。 仅使用url person /(^ $ regexp)确实有效。
我当然尝试重新启动开发服务器。这可能有什么问题?
答案 0 :(得分:5)
它与r'^person/(?P<slug>[-\w]+)/$'
不匹配,404页面显示它与r'^person/person/(?P<slug>[-\w]+)/$'
匹配
您可能在urls.py中匹配^person/
,然后导入另一个urls.py并将“person”放入其中。从第二个urls.py中删除它。导入后,辅助urls.py只需匹配URL的其余部分,而不是整个URL。