0

我正在尝试使用factory_boy为 django 应用程序创建具有循环依赖项 factory_boy: 循环依赖项的应用程序的固定装置。

楷模:

from django.db import models

class A(models.Model):
    b = models.ForeignKey(B)

class B(models.Model):
    c = models.ForeignKey(C)

class C(models.Model):
    a = models.ForeignKey(A, null=False)

工厂:

# in AFactory
b = SubFactory(BFactory)
# in BFactory
c = SubFactory(CFactory)
# in CFactory
a = CircularSubFactory('a_factory', 'AFactory', b__c__a=None)

当使用这些工厂运行我的 factory_boy 脚本时,我遇到了一个ValueError: Cannot assign None: "C.a" does not allow null values错误,这是正常C.anull=False

是否可以加载C、更改C.a设置null=True然后运行我的 factory_boy 脚本?

几点:

  • 我知道那会很丑陋,但似乎我别无选择。不过,它只会在内部用于创建固定装置。
  • 我无法更改我的模型,因为它是一个已经运行的应用程序,这些类是核心的一部分。
4

0 回答 0