У меня есть две фабрики.
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, он должен указывать на combo_sku в OrderDataFactory.
Я получаю следующую ошибку.
Cycli c ленивое определение атрибута для 'combo_sku'; цикл найден в ['category', 'combo_sku']
Есть ли другой способ передать значение признака в SubFactory.