我正在尝试使用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.a
的null=False
。
是否可以加载C
、更改C.a
设置null=True
然后运行我的 factory_boy 脚本?
几点:
- 我知道那会很丑陋,但似乎我别无选择。不过,它只会在内部用于创建固定装置。
- 我无法更改我的模型,因为它是一个已经运行的应用程序,这些类是核心的一部分。