【发布时间】:2014-10-28 16:23:58
【问题描述】:
我有一个名为“publications”的已安装应用程序,我正在尝试从我的 Django 项目中调用“publications”视图。我不断收到以下错误:
from citations_app import views as citations_app_views
ImportError: No module named citations_app
所以,我无法“加载”外部应用的视图,如果可以的话,我不确定我是否正确调用它。我正在尝试使用我的“display_info”视图函数来获取数据列表,然后将该数据传递给外部应用程序的“list_view”视图函数。 这是我的 citations.py 视图文件:
from django.db.models import get_app
citations_app = get_app("publications")
from citations_app import views as citations_app_views
from citations_app_views import list as list_view
def display_info(request):
citations = request.GET.getlist('citation-selection')
return list_view(request, citations)
知道为什么会出现导入错误,以及我是否正确调用了“list_view”视图函数? 谢谢!!
目录结构:
MyApp1/
models/
publications.py
citations.py
items.py
views/
publications.py
citations.py
items.py
MyApp2/
Publications/ (not physically present at this location but installed as part of requirements.txt file)
我在 view/items.py 中工作。
【问题讨论】:
-
您似乎没有任何名为 citations_app 的应用...您是否在
INSTALLED_APPS的 settings.py 中添加了 citations_app ?? -
请显示您的目录结构。你真的有一个名为“citations_app”的应用程序,而不仅仅是“引文”吗?请注意,后面的行完全没有意义,您应该删除它。
-
安装的应用实际上是“出版物”。我正在尝试通过调用 get_app("publications") 导入“出版物”并将其保存为 citations_app。 (我已经在 INSTALLED_APPS 中包含了应用“出版物”)...
-
你为什么使用
get_app()——一个已被弃用的私有API——而不是Python的常规导入机制(from publications import views as citations_app_views)? -
我正在使用 get_app() 因为我在视图和模型目录中都有名为 Publications.py 的文件(与已安装的发布应用程序无关),我无法让这些常规导入工作。我认为这是一个命名问题,但无法弄清楚。因此, citations_app = get_app("publications") 在我的 models/items.py 文件中可以正确导入和使用模型,但在我的 views/items.py 中无法获取视图。在views/items.py 中,如果我尝试
from publications import views as citations_app_views,我会得到ImportError: cannot import name views。
标签: python django django-views