我是 Django 的新手,正在阅读 Holovaty 和 Kaplan-Moss 的“The 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/ ... 异常值:'module' 对象没有属性 'search'
我认为正在发生的事情是,由于联系人的 View 是最后导入的,Django 正在查看不包含搜索的联系人 View (搜索在书籍 View 中)。
从 Django urls 文件中的两个不同应用程序导入 views.py 文件的正确方法是什么?
感谢您的帮助!
最佳答案
免责声明:不是 Django 的回答
问题出在这两行:
from books import views
from contact import views
第二个导入隐藏了第一个导入,因此当您稍后使用 views
时,您只使用来自 contact
的 views
。
一个解决方案可能是:
import books
import contact
urlpatterns = patterns('',
...
(r'^search/$', books.views.search),
(r'^contact/$', contact.views.contact),
...
我不确定,但我也认为您实际上不需要导入任何东西,只需在您的模式中使用字符串,例如:'books.views.search'
。
另一种可能是跟随Simon Visser建议:
from books.views import search
from contact.views import contact
关于python - Django - 从单独的应用程序导入 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11439447/