模板 URL 重定向在 Django 1.6 中生成 ImportError "no module named" 错误

Template URL redirection generating ImportError "no module named" error in Django 1.6

我正在尝试将我的应用程序从 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.

有关

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

项目布局为 changed in django 1.4

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

from myapp import views

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

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

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