Django url虽然它应该不匹配

时间:2010-09-04 21:37:14

标签: python django django-urls

在浏览器中我得到: 请求网址: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)确实有效。

我当然尝试重新启动开发服务器。这可能有什么问题?

1 个答案:

答案 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。