2017-08-25 5 views
0

CommentSerializerを使用するcommentsフィールドを持つPostSerializerがあります。このCommentSerializerのクエリーセットを変更して、一度にすべてのコメントを表示しないようにします。ModelSerializer内のDjangoカスタムクエリーセット

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

に:ここで私はSimplifiedCommentSerializer内get_queryset使用してみましたが、私はまだ代わりに、最初の10

+0

何?あなたは最初のコメントの代わりにすべてのコメントを受け取りますか? – cezar

+0

ええ、私はまだ最初のものの代わりにすべてのコメントを取得します – jamesalone

答えて

2

のすべてのコメントは、これを変更してみますコード

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

です:

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

EDIT:

ビューセットを作成し、上記の行をアウトソーシング:

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

この質問を見て答えてください:動作しません django REST framework - limited queryset for nested ModelSerializer?

+0

私はまだ – jamesalone

+0

ですべてのコメントを取得しています。 – jamesalone

関連する問題