Python Django无法从app/models.py导入

Python Django无法从app/models.py导入,python,django,django-models,Python,Django,Django Models,在我的Django应用程序(我们称之为app)中,我有许多文件:views.py,models.py,我创建了自己的utils.py 不幸的是,虽然我可以在views.py文件中包含我的模型,但只需说 从模型导入* 在我的utils.py文件中,如果我尝试相同的方法,然后使用模型,我会得到一个异常全局名称:MyModel未定义models.py确实包含了utils.py,我知道这可能是一个循环依赖,但在我添加了最近的更改之前,它工作得很好。这就是原因吗?如果是的话,重构我的utils文件的唯一解

在我的Django应用程序(我们称之为
app
)中,我有许多文件:
views.py
models.py
,我创建了自己的
utils.py

不幸的是,虽然我可以在
views.py
文件中包含我的模型,但只需说

从模型导入*


在我的
utils.py
文件中,如果我尝试相同的方法,然后使用模型,我会得到一个异常
全局名称:MyModel未定义
models.py
确实包含了
utils.py
,我知道这可能是一个循环依赖,但在我添加了最近的更改之前,它工作得很好。这就是原因吗?如果是的话,重构我的utils文件的唯一解决方案是什么?

您已经知道这是因为相互依赖。解决方法是将util文件一分为二,这样就可以通过分离需要调用模型的部分来避免循环导入

此外,正如Mipadi所建议的那样,您只需在方法范围内进行导入,而不必使用全局导入语句


此外,这实际上取决于您如何尝试使用这些模型。例如,您可以通过“app_name.class_name”访问模型,但这实际上取决于您想要使用的上下文。

utils
可以在更窄的范围(例如仅在函数中)导入
models
,以避免循环依赖性问题。哦,是的..忘了提及这一点