没有模型的 Django REST 框架序列化程序
Django REST framework serializer without a model
我正在处理几个聚合数据的端点。例如,其中一个端点将 return 一组对象,每个对象对应一天,并且它将包含特定用户发布的评论、喜欢和照片的数量。此对象有一个 predefined/set 模式,但我们没有将它存储在数据库中,因此它没有模型。
有没有办法让我在没有模型的情况下仍然可以对这些对象使用 Django 序列化程序?
您可以创建一个继承自 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()
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)
我正在处理几个聚合数据的端点。例如,其中一个端点将 return 一组对象,每个对象对应一天,并且它将包含特定用户发布的评论、喜欢和照片的数量。此对象有一个 predefined/set 模式,但我们没有将它存储在数据库中,因此它没有模型。
有没有办法让我在没有模型的情况下仍然可以对这些对象使用 Django 序列化程序?
您可以创建一个继承自 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()
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)