Django无法从app / models.py导入

时间:2012-11-27 19:01:12

标签: python django django-models

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

不幸的是,虽然我可以简单地通过说

将我的模型包含在我的views.py文件中

from models import *

在我的utils.py文件中,如果我尝试相同的操作,然后使用模型,我会得到一个异常Global name: MyModel is not definedmodels.py确实包含utils.py,我理解这可能是一个循环的依赖,但它在我添加最近的更改之前一直运行良好。这是原因,如果是重构我的utils文件的唯一解决方案吗?

1 个答案:

答案 0 :(得分:1)

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

另外,正如Mipadi所建议的那样,您可以简单地在方法范围内进行导入,而不是使用全局导入语句

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