我正在尝试创建一个模型实例,其中一个字段为JSONField
。通过factoryboy
创建模型实例时,我想将该字段保存为测试数据库中的JSONField。只需将字段作为JSON
传递,它就会存储在Unicode
数据类型中。我坚持这个。
答案 0 :(得分:7)
您可以使用factory.Dict
创建dict数据。然后,您可以使用dict_factory
属性控制数据的最终形式。
e.g。如果您希望将dict
数据序列化为JSON字符串,则可以执行以下操作:
import json
import factory
class JSONFactory(factory.DictFactory):
"""
Use with factory.Dict to make JSON strings.
"""
@classmethod
def _generate(cls, create, attrs):
obj = super()._generate(create, attrs)
return json.dumps(obj)
class BadgerFactory(factory.Factory):
form_data = factory.Dict({
'badger': ['stoat'],
}, dict_factory=JSONFactory)
class Meta:
model = ...
答案 1 :(得分:-1)
您是否尝试将值作为字典传递?然后必须将其转换为JSON。