2016-11-09 9 views
0

저는 django 1.6 및 factory-boy를 사용하고 있습니다. 여기 usernamefactory-boy는 공장 용 SubFactory 목록을 만듭니다.

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

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

는 모델의 간단한 CharField입니다. 그래서 내가 호출 할 때마다 UserFactory() 나는 object라는 이름의 고유 한 사용자를 저장하고 있습니다.

공장 보이에는 factory.SubFactory(SomeFactory)을 사용할 수 있습니다.

어떻게하면 의 목록을 ParentOfSomeFactory에 생성 할 수 있습니까?

그래서, 내가 ParentOfSomeFactory()를 호출하면 내가 SomeFactory의 목록뿐만 아니라 ParentOfSomeFactory 데이터베이스를 만들 것

+0

와 목록을 제공 하위 유형의 필드 유형은 여전히 ​​비 목록 유형 필드입니다. 어떻게 처리하고 싶습니까? 당신의 예제에서'lambda'가리스트를 반환한다면 어떻게 할 것인가? –

+0

람다가 목록을 반환하면 어떻게합니까? 그래서 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)