Как получить значение из SubFactory Django Unit Test - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть три класса. В OrdFactory я хочу передать только идентификатор в поле "sku", а sku - это целочисленное поле.

class CoFactory(factory.django.DjangoModelFactory):

    class Meta:
        model = models.Co

    name = factory.Sequence(lambda n: 'Co {}'.format(n))

class CrFactory(factory.django.DjangoModelFactory):

    class Meta:
        model = models.Cr

    name = factory.Sequence(lambda n: 'Cr {}'.format(n))

class OrdFactory(factory.django.DjangoModelFactory):

    class Meta:
        model = models.Ord

    sku = random.choice([factory.SubFactory(CrFactory), factory.SubFactory(CoFactory)])
    quantity = 75.6

Я получаю следующую ошибку.

int () аргумент должен быть строкой, байтовоподобным объектом или числом, а не 'Co'.

Я также пытался использовать id: -

sku = random.choice([factory.SubFactory(CrFactory).id, factory.SubFactory(CoFactory).id])

, но это также выдает ошибку.

1 Ответ

0 голосов
/ 24 апреля 2020

Я исправил использование trait.Overload также является альтернативным решением. https://factoryboy.readthedocs.io/en/latest/reference.html#factory .Trait

...