我是Django的新手,正在使用Django 2.1.7。
到目前为止,我有一个(简单的)工作系统。然后,我需要在我的两个模型类之间引入循环依赖关系,这将导致循环导入并导致问题等。
我已经读到,自Django 1.7起,在模型之间导入循环依赖关系的正确方法是:
from django.apps import apps
from django.db import models
Model2 = apps.get_model('my_app.Model2')
class Model1(models.Model):
# use Model2 where needed
但是,我总是看到错误:
LookupError:应用“ my_app”没有“ Model2”模型。
请注意,Model1
和Model2
都在同一个应用程序中,因此我尝试使用和不使用应用程序前缀来调用apps.get_model()
。
如果我只是删除循环依赖项(即:Model1
不再引用Model2
),则这两种模型在系统中都可以独立运行。数据库查询有效,makemigrations
有效,migrate
有效,等等...
并且可以肯定的是,在我的settings.py
文件中:我在INSTALLED_APPS
数组的顶部声明了“ my_app”。我还尝试将其移至底部。
有什么作用?似乎很简单,我不知道自己可能会缺少什么。
我需要在其他地方显式注册模型吗?