我有一个名为'刊物'而我正试图打电话给那些出版物'我的Django项目中的视图。我一直收到以下错误:
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)
我在views / items.py。
工作答案 0 :(得分:0)
忘记get_app()
,你只需要让你的目录结构和导入路径正常工作。
听起来你说问题是本地publications.py
正在影响publications
应用?您必须使用Python 2,因为在Python 3中不再存在这种歧义。要消除Python 2中的歧义,请将from __future__ import absolute_import
添加到文件的顶部。完成后,from publications import ...
将始终引用顶级应用。要访问本地publications.py
,您将使用from .publications import ...
或from myapp1.models.publications import ...
。
如果您想了解有关绝对/相对导入问题的更多信息,请参阅PEP 328。