【发布时间】:2018-02-06 22:32:48
【问题描述】:
我的模型中有一个带有 JSONField 类型(MYSQL 实现)的字段。我想使用 FactoryBoy Faker 伪造该字段的数据。
我怎样才能做到这一点?
【问题讨论】:
标签: django unit-testing django-models factory-boy django-jsonfield
我的模型中有一个带有 JSONField 类型(MYSQL 实现)的字段。我想使用 FactoryBoy Faker 伪造该字段的数据。
我怎样才能做到这一点?
【问题讨论】:
标签: django unit-testing django-models factory-boy django-jsonfield
您可以通过创建一个返回 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'
【讨论】: