没有模型的Django REST框架序列化器

Far*_*ire 26 django django-serializer django-rest-framework

我正在研究几个聚合数据的端点.其中一个端点将返回一个对象数组,每个对象对应一天,并且它将具有特定用户发布的评论,喜欢和照片的数量.此对象具有预定义/设置架构,但我们不将其存储在数据库中,因此它没有模型.

有没有一种方法我仍然可以在没有模型的情况下为这些对象使用Django序列化器?

cod*_*ict 58

您可以创建一个继承自serializers.Serializer的序列化程序,并将您的数据作为第一个参数传递,如:

serializers.py

from rest_framework import serializers

class YourSerializer(serializers.Serializer):
   """Your data serializer, define your fields here."""
   comments = serializers.IntegerField()
   likes = serializers.IntegerField()
Run Code Online (Sandbox Code Playgroud)

views.py

from rest_framework import views
from rest_framework.response import Response

from .serializers import YourSerializer

class YourView(views.APIView):

    def get(self, request):
        yourdata= [{"likes": 10, "comments": 0}, {"likes": 4, "comments": 23}]
        results = YourSerializer(yourdata, many=True).data
        return Response(results)
Run Code Online (Sandbox Code Playgroud)

  • 有用的答案!文档:http://www.django-rest-framework.org/api-guide/serializers/ (6认同)
  • 在这种情况下,可以将计算字段添加到 YourSerializer 中吗? (2认同)