我目前正在完成Django 教程(第 3 步),并被困在“解耦 URLconfs”的部分。
我尝试做的是设置一个捕获 lnadmin/ 的 URL 模式,以重定向到 django 管理员,并最终设置另一个重定向到另一个文件中包含的其他模式的全部捕获。
这是我的 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/(anything)/:
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/(anything)/。一旦我注释掉 lnapp/urls.py 中的一个 url,它就会按预期重定向到管理员。
在主 url.py 中交换两个 url 无效。