我有一对多的关系并想为它创建工厂但不知道如何使用factory_boy API执行此操作。
一对一关系很简单,只需使用SubFactory
,但如何为一对多关系做到这一点?
示例:
class Order(object):
def __init__(self, id, itens):
self.id = id
self.itens = itens
class Item(object):
def __init__(self, id, itens):
self.id = id
class OrderFactory(SQLAlchemyModelFactory):
class Meta:
model = Order
id = lazy_attribute(lambda o: random.randint(1, 1000))
itens = ????
答案 0 :(得分:1)
你应该使用post generation hook:
@factory.post_generation
def items(self, create, extracted, **kwargs):
if not create:
return
if extracted:
for item in extracted:
self.items.add(item)