0
我使用工廠男孩來測試某些模型(不是django),我在想如何顯示包含另一個工廠的多個實例的列表的字段。例如具有clases 用戶和組:如何使用factory_boy中的實例列表創建字段
class User:
name = StringType(required=True)
class Group:
name = StringType(required=True)
user = ModelType(User)
我想顯示的場稱爲基的用戶工廠包含所有到這樣的用戶所屬的組內。在運行工廠時默認顯示兩個組['group1','group2']。
class UserFactory:
name = factory.Faker('first_name')
groups = factory.RelatedFactory(GroupFactory, 'user')
class Meta:
model = User
class GroupFactory:
name = factory.Faker('word')
user = factory.SubFactory(UserFactory)
class Meta:
model = Group
我試過使用上面顯示的相關工廠,但我不知道如何定義相關字段的默認值。有誰能爲這個問題帶來一些啓示,有沒有任何工廠男孩的導師?
class UserFactory(factory.django.DjangoModelFactory):
class Meta:
model = models.User
name = "John Doe"
@factory.post_generation
def groups(self, create, extracted, **kwargs):
if not create:
# Simple build, do nothing.
return
if extracted:
# A list of groups were passed in, use them
for group in extracted:
self.groups.add(group)
:http://factoryboy.readthedocs.io/en/latest/recipes.html#simple-many-to-many-relationship
如果您創建UserFactory像文檔中,然後就可以使用UserFactory時提供組: