在Django REST Framework中命名为JSON数组 [英] Named JSON array in Django REST Framework

查看:260
本文介绍了在Django REST Framework中命名为JSON数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

实际上我已经定义了模型序列化器:

Actually I've defined model serializer:

class MyObjectSerializer(serializers.ModelSerializer):
  class Meta:
    model = MyObject
    fields = ('id', 'name', )

为我准备JSON响应的格式:

which prepare for me JSON reponse in format:

[
  { "id": 1, "name": "Object One"},
  { "id": 2, "name": "Object Two"}
]

我应该如何修改序列化器类以获取以下格式的JSON响应:

How should I modify my serializer class to get JSON response in format:

{
  "results":
  [
    { "id": 1, "name": "Object One"},
    { "id": 2, "name": "Object Two"}
  ]
}

您对django-rest-framework文档有任何建议或链接,在哪里可以找到关于此问题的说明?

Do you have any advices or link to django-rest-framework documentation where can I find description to this issue?

推荐答案

看看list()方法假设您没有使用分页数据(您暗示这是分页数据),实际上只是在这样做:

Assuming you're not using paginated data (which you question implys) it's essentially just doing this:

def list(self, request, *args, **kwargs):
    self.object_list = self.filter_queryset(self.get_queryset())
    serializer = self.get_serializer(self.object_list, many=True)
    return Response(serializer.data)

因此,您只需要重写它即可使用自己的自定义样式...

So, you just need to override that to use your own custom style instead...

def list(self, request, *args, **kwargs):
    self.object_list = self.filter_queryset(self.get_queryset())
    serializer = self.get_serializer(self.object_list, many=True)
    return Response({'results': serializer.data})

这篇关于在Django REST Framework中命名为JSON数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆