我有以下 Django Rest Framework 序列化程序:
from rest_framework.serializers import SerializerMethodField
from posts.api.serializers import CommentSerializer
class PostSerializer(ModelSerializer):
comments = SerializerMethodField()
class Meta:
model = Post
fields = ('id', 'title', 'comments')
def get_comments(self, obj):
return CommentSerializer(obj.comments.all(), many=True).data
我有以下观点:
from rest_framework.views import APIView
from rest_framework.responses import Response
from posts.models import Post
class PostsAPIView(APIView):
def get(request):
posts = Post.objects.all()
serializer = PostSerializer(posts, many=True)
return Response(serializer.data, status=200)
所以,我的问题是,当我的序列化程序正在准备帖子的 JSON 以获取每个帖子的评论时,它是否执行数据库查询?
例如,如果我有 10 个帖子,是否在此视图中执行了 11 个数据库查询?(1 个查询获取帖子,10 个查询获取序列化程序中每个帖子的评论)。