Как ограничить количество результатов в сериализаторе Django REST?

Здравствуйте, у меня есть такой сериализатор:

class ActivitiesSerializer(serializers.ModelSerializer):
    activity = serializers.CharField(source='task.name')
    project = serializers.CharField(source='project.name')
    discipline = serializers.CharField(source='task.discipline.name')

    class Meta:
        model = Activities
        fields = (
            'id',
            'activity',
            'project',
            'discipline',
            )

Как я могу ограничить количество результатов до 10?

Вот мое мнение:

class ActivitiesAPIView(generics.ListCreateAPIView):
    search_fields = ['task__name', 'task__discipline__name', 'project__name']
    filter_backends = (filters.SearchFilter,)
    queryset = Activities.objects.all()
    serializer_class = ActivitiesSerializer

Обратите внимание, что я хочу ограничить количество результатов до 10, но я хочу выполнить поиск по всей модели, поэтому просто ограничить набор запросов до 10 не получится

Вы можете использовать пагинацию:

from rest_framework.pagination import PageNumberPagination

class DefaultPagination(PageNumberPagination):
    page_size = 10
    page_size_query_param = 'page_size'
    max_page_size = 1000

Затем в View:

class ActivitiesAPIView(generics.ListCreateAPIView):
    pagination_class = DefaultPagination

https://www.django-rest-framework.org/api-guide/pagination/#pagenumberpagination

Вернуться на верх