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

时间:2015-01-20 00:59:10

标签: django django-templates

我尝试将我的应用程序从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' %}">

我可以浏览/注册没有错误,因此它与解析回URL有关。

一定是简单的事情,但我很难过。任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

最后追查了这个问题。我编码的是正确的。但是,我的url.py文件底部还有一些其他url模式,我还没有转换为1.6。例如

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

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

答案 1 :(得分:0)

项目布局为changed in django 1.4

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

from myapp import views