我在当前 django 项目中的应用程序之间导入模型时遇到问题。尝试运行开发服务器或同步数据库时,我收到错误消息:
File "/path/to/Project/../Project/app1/models.py", line 3, in <module>
class SomeModel(Thing):
NameError: name 'Thing' is not defined
事物在Project/main/models.py中定义,我通过以下方式导入Project/app1/models.py:
from project.main.models import Thing
我知道这种事情可能是python阻止循环导入的结果。
目前我有三个 django 应用程序:main、app1、app2
每个应用程序的导入如下:
主要的:
from project.app1.models import AnotherThing
应用程序1:
from project.main.models import Thing
应用程序2:
from project.main.models import Thing
from project.app1 import Something
我怀疑将模型从 app1 导入 app2 会导致问题,因为这两个应用程序都从 main 导入模型,而 main 又从 app1 导入模型,等等。
如果是这种情况 - 我可以使用哪些其他方法来达到与这些导入相同的效果?有没有更被接受的组织事情的方式,这样我就不会遇到这种情况?