我尝试将我的应用程序从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有关。
一定是简单的事情,但我很难过。任何建议都将不胜感激。
答案 0 :(得分:1)
最后追查了这个问题。我编码的是正确的。但是,我的url.py文件底部还有一些其他url模式,我还没有转换为1.6。例如
url(r'/schedule/$', 'schedule_list'),
当URL解析器查找反向匹配时,它显然会从底部开始循环遍历url模式并立即出错。我想我认为它会从url模式的顶部开始,或者有某种查找表将名称映射回url。
答案 1 :(得分:0)