使用Django API REST处理嵌套JSON
我有一个这样的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)