Подделка JSONField с помощью Factory Boy

У меня есть поле в моей модели с типом JSONField (реализация MYSQL). Я хочу подделать данные для этого поля с помощью FactoryBoy Faker.

Как я могу этого добиться?


person Anshul Sharma    schedule 29.08.2017    source источник
comment
stackoverflow.com/questions/30597804 /   -  person dm03514    schedule 29.08.2017


Ответы (1)


Вы можете решить эту проблему, создав функцию, которая возвращает словарь вместо одной строки, данные — это JSONField в модели пользователя. Вы также можете использовать этот же код с PostgreSql JSONField, он также возвращает dict в поле модели.

import factory


def sequence(number):
   """
   :param number:
   :return: a dict that contains random data
   """
   return {
       'email': 'example{0}@foo.com'.format(number),
       'username': 'username{0}'.format(number),
   }


class UserFactory(factory.django.DjangoModelFactory):
    data = factory.Sequence(sequence)

    class Meta:
        model = 'users.User'
person Hammadi Ilyes    schedule 09.11.2017