在Django Rest框架上覆盖JSONSerializer
我正在尝试在我的django rest框架上应用此修复程序 将根元素添加到json响应(django-rest-
framework)
但是我不确定如何在django rest框架上覆盖json序列化程序,任何帮助都将是很大的。
最终结果将是在Json上具有根节点名称,因为现在它只是一个没有根名称的对象数组,即
不是这样的
[{“ foo”:“ bar”}]
我需要像这样
{“ element”:[{“ foo”:“ bar”}]}
使它与Ember JS一起使用
谢谢
-
我想您已经在给出的帖子中找到了答案。
您需要定义自定义JSON渲染器
from rest_framework.renderers import JSONRenderer class EmberJSONRenderer(JSONRenderer): def render(self, data, accepted_media_type=None, renderer_context=None): data = {'element': data} return super(EmberJSONRenderer, self).render(data, accepted_media_type, renderer_context)
并将其用作设置中的默认渲染器或供您查看的显式定义的渲染器,例如:
class MyView(APIView): renderer_classes = (EmberJSONRenderer, ) # ...