使用INCLUDE时,Django URL-Patterns无法正常工作

时间:2012-06-13 09:18:12

标签: django python-2.7

我目前正在通过Django Tutorial (Step 3)工作,并坚持使用“解耦URLconf”这一部分。

我尝试做的是设置一个捕获lnadmin /的URL模式,重定向到django admin,最后另一个重定向到另一个文件中包含的其他模式的catch-all。

这是我的mysite / urls.py:

from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',

url(r'^lnadmin/', include(admin.site.urls)), #match admin
url(r'^test/', include('lnapp.urls')), #match test, should be a catch-all later
)

这里是lnapp / urls.py,它应该匹配hash /(任何)/:

from django.conf.urls import patterns, include, url

urlpatterns = patterns('lnapp.views',
    url(r'^hash/(?P<hash>.+)/$', 'hash'), #match part to load from hash
)

之前我在主url.py中有这个模式,它按预期工作。 现在发生的是当我打开(mydomain)/ lnadmin /时,它尝试访问lnapp.views.hash(无法导入lnapp.views.hash,因为尚未定义视图)。

这对我没有任何意义,因为lnadmin /应与第一个模式匹配,并且/ lnadmin /与test / hash /(nothing)/不匹配。只要我在lnapp / urls.py中注释掉一个网址,它就会按预期重定向到管理员。

交换主url.py中的两个网址都没有效果。

1 个答案:

答案 0 :(得分:0)

我自己的问题的答案是:即使对于不匹配的网址,您也必须定义视图,否则它将失败。