【问题标题】:Fake JSONField using Factory Boy使用 Factory Boy 的假 JSONField
【发布时间】:2018-02-06 22:32:48
【问题描述】:

我的模型中有一个带有 JSONField 类型(MYSQL 实现)的字段。我想使用 FactoryBoy Faker 伪造该字段的数据。

我怎样才能做到这一点?

【问题讨论】:

标签: django unit-testing django-models factory-boy django-jsonfield


【解决方案1】:

您可以通过创建一个返回 dict 而不是单个字符串的函数来解决此问题,data 是 User 模型中的 JSONField。您还可以将相同的代码与 PostgreSql JSONField 一起使用,它还会在模型字段中返回一个字典。

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'

【讨论】:

    猜你喜欢
    • 2020-05-03
    • 1970-01-01
    • 2015-12-26
    • 2019-11-05
    • 2021-03-01
    • 2020-07-12
    • 2020-04-09
    • 1970-01-01
    • 2015-05-02
    相关资源
    最近更新 更多