2016-11-09 46 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)