Python Django无法从app/models.py导入
在我的Django应用程序(我们称之为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文件的唯一解
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
,以避免循环依赖性问题。哦,是的..忘了提及这一点