python - Django - 从单独的应用程序导入 View

标签 python django

我是 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 时,您只使用来自 contactviews

一个解决方案可能是:

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/

相关文章:

python - 自动将 txt 转换为 xls

python - 将 RDD 的每个元素与列表中的相应元素相乘

python - 部署到移动设备或台式计算机之间的 aws elastic beanstalk 的 django 网站有区别吗?

sql - Django ORM中多对多字段的复杂计数

mysql - 运行 python manage.py loaddata datadump.json 时出现数据库错误

python - 同时运行两个python文件

python - Pandas :选择每组中的前几行

python - Django 查询明确列出字段值的计数

Django - forms.FileField() 初始值

mysql - Django:将两个查询(两个不同模型)中的项目组合在一起