我有一个Purchase
模型和一个PurchaseInfo
模型PurchaseInfo
有一个指向Purchase
的外键。我正在尝试修改Purchase
的现有工厂,该工厂将同时使用RelatedFactory
创建PurchaseInfo
,因为它是一个反向外键关系。唯一的问题是我想使用一个污点,这样我就可以控制PurchaseInfo
中字段的值。通常,当我创建一个类似Purchase
的p = PurchaseFactory()
时,PurchaseInfo
会在其中创建空字段。如果我创建一个类似Purchase
的p = PurchaseFactory(info=True)
,这样我就可以通过这个污点获得字段修改,那么PurchaseInfo
根本就不会创建
我有一种感觉,把RelatedFactory
置于污点中不是一条路。正确的方法是什么
型号:
class Purchase(Model):
...
class PurchaseInfo(Model):
purchase = models.ForeignKey(Purchase, on_delete=models.CASCADE, unique=True, db_index=True)
lock = DateTimeField(null=True)
lock_by = ForeignKey(...
class PurchaseInfoFactory(DjangoModelFactory):
class Meta:
model = PurchaseInfoField
lock = None
lock_by = None
class PurchaseFactory(DjangoModelFactory):
class Meta:
model = Purchase
info = RelatedFactory(PurchaseInfoFactory,
factory_related_name='purchase')
class Params:
info = Trait(internalfield=RelatedFactory(PurchaseInfoFactory,
factory_related_name='purchase',
lock=timezone.now() - relativedelta(months=1),
lock_by=SubFactory(UserFactory, user_id=1)))
我不喜欢我的解决方案,但我是这么做的。我导出了一个二级工厂和一个备用关联工厂。这很有效
相关问题 更多 >
编程相关推荐