Python 动态更改Django模型属性
我正在尝试为django应用程序创建fixture,用于具有循环依赖关系的应用程序 型号:Python 动态更改Django模型属性,python,django,factory-boy,Python,Django,Factory Boy,我正在尝试为django应用程序创建fixture,用于具有循环依赖关系的应用程序 型号: 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) 工厂:
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)
当使用这些工厂运行我的工厂脚本时,我面临一个ValueError:cannotassignnone:“C.a”不允许空值
错误,这是正常的,因为C.a
设置了null=False
是否可以加载C
,更改C.a
以设置null=True
,然后运行我的工厂脚本
有几点:
- 我知道那会很难看,但似乎我别无选择。但它仅在内部用于创建装置李>
- 我不能改变我的模型,因为它是一个已经运行的应用程序,这些类是核心的一部分
对象的引用。我已经问过factory_boy的创建者我应该如何在IRC上处理这个问题,现在正在等待他的回答。