ModelSerializer 中的 Django 自定义查询集

Django custom queryset inside ModelSerializer

我有一个 PostSerializer,它有一个使用 CommentSerializercomments 字段。我想更改此 CommentSerializer 的查询集,以便它不会一次显示所有评论。这是代码

class PostSerializer(serializers.ModelSerializer):
    comments = SimplifiedCommentSerializer(
        many=True,
        required=False,
    )

    class Meta:
        model = Post
        fields = ('comments')

class SimplifiedCommentSerializer(serializers.ModelSerializer):
    content = serializers.TextField()

    # this function doesn't seem to work
    def get_queryset(self):
        return Comment.objects.all()[:10]

    class Meta:
        model = Comment
        fields = ('content')

我试过在 SimplifiedCommentSerializer 中使用 get_queryset,但我仍然收到所有评论,而不是前 10 条评论。

尝试改变这个:

def get_queryset(self):
    return Comment.objects.all()[:10]

进入:

queryset = Comment.objects.all()[:10]

编辑:

创建视图集并外包上面的行:

class CommentViewSet(viewsets.ModelViewSet):
    queryset = Comment.objects.all()[:10]
    serializer_class = SimplifiedCommentSerializer

请看这个问答: django REST framework - limited queryset for nested ModelSerializer?