我的一个应用程序models.py
中有这样的东西:
class Account(AbstractBaseUser):
email = models.EmailField(unique=True)
我想从另一个应用程序的 views.py 导入一个类,如下所示:
from anotherapp.views import MyClass
问题出在anotherapp.views
文件的第一行,我导入了Account
类。因此,当我想将MyClass
导入我的models.py
文件时,此错误会引发:
ImportError: cannot import name Account
这是您遇到的循环导入错误。虽然在 Django 中从视图导入模型是一种不好的做法,但如果你仍然想这样做,你可以按照这个问题中的方法来解决这个问题。
以下是一些可被视为良好做法的替代方法:
- 您可以考虑导入
anotherapp
中存在的其他低级模块,而不是MyClass
(不依赖于views.py
( - 你可以使用 Django 的信号来捕捉
anotherapp
的事件项目范围并根据它采取行动。 - 您可以创建第三个文件,例如
utils.py
anotherapp
,MyClass
移动到那里,然后让anotherapp/views.py
和应用的models.py
从anotherapp.utils
导入