ModelSerializer内部的Django自定义查询集
问题描述:
我有一个PostSerializer
,它有一个使用CommentSerializer
的comments
字段。我想更改此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
答
尝试改变这一点:到
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
什么不起作用?你会得到所有的评论,而不是第一个呢? – cezar
是啊,我仍然得到所有的意见,而不是第一个 – jamesalone