我是 Django 新手,正在阅读 Holovaty 和 Kaplan-Moss 所著的《Django Book》。我有一个名为“mysite”的项目,其中包含两个名为“books”和“contact”的应用程序。每个都有自己的 view.py 文件。在我的 urls.py 文件中,我有以下内容:
from books import views
from contact import views
...
urlpatterns = patterns('',
...
(r'^search/$', views.search),
(r'^contact/$', views.contact),
...
当我运行我的代码时,我收到此错误:
/search/ 处的名称错误
...
异常值:“模块”对象没有属性“搜索”
我相信正在发生的事情是,由于联系人的视图是最后导入的,Django 正在查看不包含搜索的联系人视图(搜索位于书籍视图中)。
从 Django urls 文件中的两个不同应用程序导入views.py 文件的正确方法是什么?
感谢您的帮助!
免责声明:不是 Django 答案
问题出在这两行:
from books import views
from contact import views
第二个导入会影响第一个导入,因此当您使用views
稍后你只使用views
from contact
.
一种解决方案可能是:
import books
import contact
urlpatterns = patterns('',
...
(r'^search/$', books.views.search),
(r'^contact/$', contact.views.contact),
...
我不确定,但我也认为您实际上不需要导入任何内容,只需在模式中使用字符串即可,例如:'books.views.search'
.
另一种可能性是遵循西蒙·维瑟 https://stackoverflow.com/users/1267329/simeon-visser建议:
from books.views import search
from contact.views import contact
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)