简体   繁体   English

factory_boy一对多关系

[英]factory_boy one to many relationship

I have an one-to-many relationship and want to create a factory for it but don't know how to do this with factory_boy API. 我有一对多的关系,并想为其创建一个工厂,但是不知道如何使用factory_boy API来实现。 One-to-one relationships are easy, just use SubFactory , but how to do this for a one-to-many relationship? 一对一的关系很简单,只需使用SubFactory ,但是对于一对多的关系该如何做呢?

Example: 例:

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 = ????

You should use 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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM