【问题标题】:Django URL-Patterns not working as expected when using INCLUDE使用 INCLUDE 时,Django URL 模式无法按预期工作
【发布时间】:2012-06-13 09:18:12
【问题描述】:

我目前正在通过Django Tutorial (Step 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 无效。

【问题讨论】:

    标签: django python-2.7


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      • 2019-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多