我有两个工厂。
class DispatchDataFactory(factory.django.DjangoModelFactory):
class Meta:
model = models.DispatchData
order = factory.SelfAttribute('order_data.order')
sku = factory.LazyAttribute(lambda obj: '%d' % obj.order_data.sku)
category = SKUCategory.SINGLE
quantity = 50
class Params:
combo_sku=False
order_data = factory.SubFactory(OrderDataFactory, combo_sku=factory.SelfAttribute('combo_sku'))
combo_sku = factory.Trait(
sku=factory.LazyAttribute(lambda obj: '%d' % obj.order_data.sku),
category=SKUCategory.COMBO,
quantity=1
)
class OrderDataFactory(factory.django.DjangoModelFactory):
class Meta:
model = models.OrderData
order = factory.SubFactory(OrderFactory)
category = SKUCategory.SINGLE
quantity = 75.6
price_per_kg = 10.5
sku = factory.SelfAttribute('crop_data.id')
class Params:
crop_data = factory.SubFactory(CropFactory)
combo_data = factory.SubFactory(ComboSkuFactory)
combo_sku = factory.Trait(
sku=factory.SelfAttribute('combo_data.id'),
category=SKUCategory.COMBO,
quantity=1,
price_per_kg=34.56
)
因此,如果combo_sku为True,则它必须位于OrderDataFactory中的combo_sku上。
我收到以下错误。
‘combo_sku’的循环惰性属性定义;在 ['category', 'combo_sku'] 中找到循环
有没有其他方法可以将特征值传递给 SubFactory。
我已向第一个工厂添加了默认值,并且它工作正常。
combo_sku = False
class Params:
order_data = factory.SubFactory(
OrderDataFactory, combo_sku=factory.SelfAttribute('..combo_sku'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)