2016-11-09 40 views
0

我正在使用django 1.6和factory-boy。factory-boy为工厂创建SubFactory的列表

class UserFactory(factory.Factory): 
    class Meta: 
     model = models.User 

     username = factory.Sequence(lambda n: 'user%d' % n) 

这里username是在模型的简单CharField。所以每次我打电话UserFactory()我都保存并获得唯一的用户命名对象。

在工厂男孩我可以使用factory.SubFactory(SomeFactory)

如何在ParentOfSomeFactory中生成SomeFactory列表?

这样,如果我叫ParentOfSomeFactory()我将创建SomeFactory的列表以及ParentOfSomeFactory数据库

+0

名单只是为了确保,即使你创建一个列表子工厂的字段类型仍然是非列表类型的字段,你想如何处理它?在你的例子中,如果'lambda'返回列表,你会怎么做? –

+0

如果lambda返回列表,你会怎么做? 因此,如果我调用ParentOfSomeFactory()它会自动创建并保存一个SomeFactory模型的列表在数据库。我不想手动创建它。 –

回答

1

你的代码提供factory.Iterator

import itertools 
import factory 

# cycle through the same 5 users 
users = itertools.cycle(
    (UserFactory() for _ in range(5)) 
) 

class ParentFactory(factory.Factory): 
    user = factory.Iterator(users)