【问题标题】:How to serve TextField as literal JSON without escaping with Django REST Framework?如何在不使用 Django REST 框架转义的情况下将 TextField 用作文字 JSON?
【发布时间】:2015-09-08 20:52:38
【问题描述】:

我们通过 TextField 将原始 JSON 数据存储在我们的模型中,并希望这些数据由 REST Framework API 提供。

内容被转义并呈现为字符串而不是对象的一部分。例如{\r\n \"phases\": [\r\n \"S

来自requirements.txt

    Django==1.8.2
    djangorestframework==3.1.3

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    在我的序列化程序中添加了以下内容(以及我的 urls.py 顶部的 import json

    def to_representation(self, instance):
      ret = super(RoadmapSerializer, self).to_representation(instance)
      ret['jsonField'] = json.loads(ret['jsonField'])
      return ret
    

    nb:jsonFieldmodels.py 中声明的模型属性的名称

    jsonField = models.TextField(verbose_name="JSON", blank=True)
    

    灵感来源 - django-rest-framework: How Do I Serialize a Field That Already Contains JSON?(Almalki 和 Denis Cornehl 的回答) - http://www.django-rest-framework.org/topics/3.0-announcement/#serializers(因为在 drf 3.0 中不推荐使用 transform_)

    【讨论】:

      猜你喜欢
      • 2019-11-04
      • 2014-02-26
      • 2021-08-30
      • 2020-11-20
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      相关资源
      最近更新 更多