我的django项目中有一个管理部分工作正常,但突然间它报告了这个错误:
/ admin /
中的ViewDoesNotExist无法导入restaurants.views.question。模块restaurants.views中不存在视图。
前端仍然正常工作。
我不确定我做了什么改变 - 如何解决?
答案 0 :(得分:2)
这通常表示相关视图不存在或管理面板无法访问。您确定要导入它,还是根据需要包含它?
答案 1 :(得分:0)
在我看来,您已经创建了与您的question
视图相关的错误,这就是破坏管理员(Could not import restaurants.views.question
)的原因。这实际上并不是管理员的错误,也不是restaurants.views
模块正文中的新错误。
我的猜测是你创建了一个循环导入 - 查看restaurants.views
模块顶部的导入。现在检查您要导入的每个模块,并查看该模块是否从restaurants.views
导入。
如果没有显示任何内容,请检查导入restaurants.views
模块的所有模型中的所有导入,并在那里查找。
自从使用基于类的视图以来,我已经看过几次了。显然,基于阶级的观点的全部意义在于它们可以被扩展。这可能导致循环依赖。除非我的应用程序中只有几个视图,否则我倾向于从一个文件中拆分所有内容并创建一个视图目录 -
my_app
views
__init__.py
view1.py
view2.py
view3.py
然后将以下导入语句添加到__init__.py
,以便一切正常 -
from view1 import View1
from view2 import View2
from view3 import View3
这使您可以在每个视图模块的顶部使用更少的import语句,从而降低循环依赖的风险。