0

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

不幸的是,虽然我可以简单地通过说将我的模型包含在我的views.py文件中

from models import *

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

4

1 回答 1

1

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

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

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

于 2012-11-27T19:10:18.423 回答