【问题标题】:Template URL redirection generating ImportError "no module named" error in Django 1.6模板 URL 重定向在 Django 1.6 中生成 ImportError “no module named”错误
【发布时间】:2015-01-20 00:59:09
【问题描述】:

我正在尝试将我的应用程序从 Django 1.0 迁移到 1.6,但在呈现带有 URL 重定向的模板时遇到了问题。

我的应用结构是:

mysite
   settings.py
   urls.py
   myapp
    urls.py
    views.py
    etc.

myapp.urls 包含:

from mysite.myapp import views
urlpatterns = patterns('',
    # Login/Logout/Registration
    url(r'^login/$', views.login, name="login"),
    url(r'^registration/$', views.registration, name="registration"),
)

当我浏览到 /login 时,URL 被正确映射并调用视图。然而,当视图试图渲染它的模板时,它会产生这个错误:

ImportError at /login
No module named myapp

并在模板中指向这个重定向语法:

<a href="{% url 'registration' %}">

我可以毫无错误地浏览到 /registration,因此它与解析回 URL 有关。

这一定很简单,但我很难过。任何建议将不胜感激。

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    终于找到了问题所在。我的编码是正确的。但是,我的 url.py 文件底部还有一些其他 url 模式,我没有转换为 1.6。例如

    url(r'/schedule/$', 'schedule_list'),
    

    当 URL 解析器寻找反向匹配时,它显然会循环遍历从底部开始的 url 模式并立即出错。我想我假设它要么从 url 模式的顶部开始,要么有某种查找表将名称映射回 url。

    【讨论】:

      【解决方案2】:

      项目布局为changed in django 1.4

      删除mysitemyapp/urls.py中模块名称的一部分。应该是:

      from myapp import views
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-16
        • 2015-04-30
        • 2017-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-27
        相关资源
        最近更新 更多