Как создать фабрику для модели с несколькими общими внешними ключами? - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь настроить завод для моей модели, которая имеет более 1 общего внешнего ключа.Я не могу заставить его работать более одного GFK.

class ContactFactory(factory.django.DjangoModelFactory):
    class Meta:
        abstract = True
        # model = ContactData
        exclude = ['content_object']
    object_id = factory.SelfAttribute('content_object.id')
    content_type = factory.LazyAttribute(
        lambda o: ContentType.objects.get_for_model(o.content_object))
    email = factory.Faker('email')
    fax_number = factory.Faker('phone_number')
    phone_number = factory.Faker('phone_number')
    mobile_number = factory.Faker('phone_number')
    external_profiles = factory.Dict({
        'xing': factory.Faker('uri'),
        'website': factory.Faker('uri'),
        'facebook': factory.Faker('uri'),
        'linkedin': factory.Faker('uri')
    })
class CandidateFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = Candidate
    # id = uuid.uuid4()
    object_id = factory.Sequence(int)
    created_at = FuzzyDateTime(datetime.datetime(2008, 1, 1, tzinfo=pytz.UTC))
    updated_at = FuzzyDateTime(datetime.datetime(2008, 1, 1, tzinfo=pytz.UTC))
class CandidateContactFactory(factory.django.DjangoModelFactory):
    content_object = factory.SubFactory(CandidateFactory)

    class Meta:
        model = ContactData

Я пытался создать фабрику контактов, которую можно сделать с помощью

b = CandidateContactFactory() 

Но у меня есть общий внешний ключ к другой address модели.Как я могу сделать это с фабрикантом?

...