【问题标题】:factory_boy one to many relationshipfactory_boy 一对多关系
【发布时间】:2018-01-18 19:48:57
【问题描述】:

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

【问题讨论】:

    标签: python factory-boy


    【解决方案1】:

    你应该使用后生成钩子:

    @factory.post_generation
    def items(self, create, extracted, **kwargs):
        if not create:
            return
    
        if extracted:
            for item in extracted:
                self.items.add(item)
    

    【讨论】:

      猜你喜欢
      • 2013-01-08
      • 1970-01-01
      • 2018-06-15
      • 2018-09-27
      • 2011-03-30
      • 2015-09-20
      • 2018-03-16
      • 2018-10-03
      • 2011-09-24
      相关资源
      最近更新 更多