我的 django 项目中有一个管理部分工作正常,但突然报告此错误:
ViewDoesNotExist 在 /admin/
无法导入 restaurant.views.question。模块 restaurant.views 中不存在视图。
前端仍然可以正常工作。
不知道我做了什么改变导致这个 - 如何解决它?
这通常表明相关视图不存在或管理面板无法访问。你确定你导入了它,还是根据需要包含了它?
在我看来,您创建了一个与您的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
这使您可以在每个视图模块的顶部使用更少的导入语句,从而降低循环依赖的风险。