Пользовательский набор запросов Django внутри ModelSerializer

У меня есть PostSerializer, в котором есть поле comments, в котором используется CommentSerializer. Я хочу изменить набор запросов этого 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')

Я пытался использовать get_queryset внутри SimplifiedCommentSerializer, но все равно получаю все комментарии вместо первых 10.


person jamesalone    schedule 25.08.2017    source источник
comment
Что не работает? Вы получаете все комментарии вместо первого тогда?   -  person cezar    schedule 25.08.2017
comment
ага, я все равно получаю все комментарии вместо первого   -  person jamesalone    schedule 25.08.2017


Ответы (1)


Попробуйте изменить это:

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 - ограниченный набор запросов для вложенный ModelSerializer?

person cezar    schedule 25.08.2017
comment
Я все еще получаю все комментарии с этим - person jamesalone; 25.08.2017