gpt4 book ai didi

Django:摆脱循环依赖

转载 作者:行者123 更新时间:2023-12-02 07:14:36 26 4
gpt4 key购买 nike

我有两个应用:commonappapp1

这是commonapp/models.py:

from django.db import models
#from app1.models import SpecificFields

# Create your models here.
class CommonFields(models.Model):
a = models.IntegerField(default = 0)

class Meta:
abstract = True

class SomeFields(models.Model):
# a = models.ForeignKey(SpecificFields)
a = models.ForeignKey('app1.models.SpecificFields')

这里是app1/models.py:

from django.db import models
from commonapp.models import CommonFields

# Create your models here.
class SpecificFields(CommonFields):
a2 = models.IntegerField(default=0)

当我尝试从 app1commonapp 运行 SQL 时,出现以下错误:

$ python manage.py sql commonapp
CommandError: One or more models did not validate:
commonapp.somefields: 'a' has a relation with model app1.models.SpecificFields,
which has either not been installed or is abstract.

我意识到这是一个循环依赖的问题。其他人建议将类的路径指定为 string而不是实际的类(class),但这不起作用。我也无法指定字符串作为派生类中的基类名称。

在不重构我的模型的情况下,这样的循环依赖是否可能?

最佳答案

CommonFieldsSomeFields 之间导入 app1.models

关于Django:摆脱循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17376507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com