factory_boy一对多关系

时间:2018-01-18 19:48:58

标签: python factory-boy

我有一对多的关系并想为它创建工厂但不知道如何使用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 = ????

1 个答案:

答案 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)