Importing from views to models in Django
我的一个应用程序的
1 2 | class Account(AbstractBaseUser): email = models.EmailField(unique=True) |
我想从另一个应用的views.py导入一个类,如下所示:
1 | from anotherapp.views import MyClass |
号
问题出在
1 | ImportError: cannot import name Account |
这是您遇到的循环导入错误。虽然在Django中从视图导入到模型是一种糟糕的实践,但是如果您仍然想这样做,您可以按照这个问题中的方法来解决它。
以下是几种可被视为良好实践的替代方法:
- 您可以考虑在
anotherapp 中导入其他低级模块,而不是在MyClass 中导入(不取决于views.py ) - 您可以使用django的信号在项目范围内捕获
anotherapp 的事件,并根据这些事件进行操作。 - 你可以创建第三个文件,比如
anotherapp 中的utils.py ,把MyClass 移到那里,让anotherapp/views.py 和你的应用程序的models.py 从anotherapp.utils 导入。