使用factoryboy将字段保存为JSON

时间:2015-06-02 13:40:31

标签: django factory-boy

我正在尝试创建一个模型实例,其中一个字段为JSONField。通过factoryboy创建模型实例时,我想将该字段保存为测试数据库中的JSONField。只需将字段作为JSON传递,它就会存储在Unicode数据类型中。我坚持这个。

2 个答案:

答案 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。