【发布时间】:2018-08-02 12:11:46
【问题描述】:
我在我的序列化程序中使用了 JSONfield,正如线程 store json as dict 中的用户指出的那样,带有 Mysql 的 DRF 将 JSONfield 存储为字典
但是,我宁愿将其存储为 JSON {"tags":{"data":"test"}} 而不是将其存储为 Dict 的默认行为 - {'tags': { 'data': 'test' }} - Daniel 建议使用覆盖 JSONfield 为:
class JSONField(serializers.Field):
def to_representation(self, obj):
return json.loads(obj)
......
但是数据仍然存储为字典。 在我的 serializers.py 我已经覆盖了 JSONField 类,然后就这样使用它
class schemaserializer(serializers.ModelSerializer):
js_data=serializers.JSONField()
但它仍将其保存为字典。 预期行为: 将其保存为 JSON - POST
将其检索为 dict - GET(以便渲染器可以将其解析为 JSON)
目前我正在使用 json 转储和 json 加载手动执行此操作,但正在寻找更好的方法。
这样做的原因是,虽然我有一个 API,但在某些情况下,用户会直接读取我的数据库,并且他们需要该字段为 JSON。
Django (2.0.1) 蟒蛇 3.5 djangorestframework (3.7.7)
【问题讨论】:
标签: json django dictionary django-rest-framework