使用Django API REST处理嵌套JSON

0 投票
1 回答
958 浏览
提问于 2025-04-18 12:18

我有一个这样的Django REST框架视图:

#views.py
class RegistroViewSet(viewsets.ModelViewSet):
queryset = Registro.objects.all()
serializer_class = RegistroSerializer

而且返回的JSON格式是这样的:

[{"id": 1 .....}]

我需要的格式是这样的:

{"success":true,"data":[{"id":"1" ...}]}

还有这个序列化器:

class RegistroSerializer(serializers.HyperlinkedModelSerializer):
idProce = serializers.PrimaryKeyRelatedField(many=False)
idEntidad = serializers.PrimaryKeyRelatedField(many=False)
idUsuario =  serializers.PrimaryKeyRelatedField(many=False)

class Meta:

    model = Registro 

我该怎么做呢?(Django新手)谢谢!

1 个回答

0

ModelViewSet 是一个非常精致的类,它主要做一件事情:返回序列化后的模型,其他的就不多说了。在这种情况下,你可以创建自己的 ViewSet 来处理这个模型,这样你就可以选择展示数据的方式,效果大概是这样的:

from rest_framework.response import Response

class RegistroViewSet(viewsets.ViewSet): #just ViewSet, not ModelViewSet
    def list(self, request):
        queryset = Registro.objects.all()
        serializer = RegistroSerializer(queryset, many=True)
        my_dict = {'success': True, 'data':serializer.data}
        return Response(my_dict)

撰写回答