ModelSerializer内部的Django自定义查询集

问题描述:

我有一个PostSerializer,它有一个使用CommentSerializercomments字段。我想更改此CommentSerializer的查询集,以便它不会一次显示所有注释。下面的代码ModelSerializer内部的Django自定义查询集

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') 

我使用get_queryset的SimplifiedCommentSerializer里面试过,但我仍然得到所有的意见,而不是第10

+0

什么不起作用?你会得到所有的评论,而不是第一个呢? – cezar

+0

是啊,我仍然得到所有的意见,而不是第一个 – jamesalone

尝试改变这一点:到

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?

+0

我仍然得到这个 – jamesalone

+0

创建它在一个视图作品,所有的意见,谢谢! – jamesalone