Элементы управления разбиением на страницы в Django Rest Framework APIView - PullRequest
0 голосов
/ 10 апреля 2019

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

Я искал, как решить эту проблему, но я почти ничего не нашел, обычно, когда я нашел способ добавить нумерацию страниц в пользовательский вид, тогда это выглядит так, как у меня, но это не то, что я хочу, потому что это не дает Возможность сменить страницу.

pagination.py

class CustomPagination(PageNumberPagination):
    page_size = 2
    page_size_query_param = 'page_size'

    def get_paginated_response(self, data):
        return Response({
            'next': self.get_next_link(),
            'previous': self.get_previous_link(),
            'count': self.page.paginator.count,
            'limit': self.page_size,
            'result': data
        })

views.py

class TaskIndexAPIView(APIView):

    def filter_queryset(self, queryset):
        for obj in list(self.filter_backends):
            queryset = obj().filter_queryset(self.request, queryset, self)
            return queryset

    filter_backends = (filters.SearchFilter,)
    search_fields = ('name', 'description', 'user__username')

    def get_queryset(self):
        return Task.objects.all()

    def get(self, request):
        filtered_qs = self.filter_queryset(self.get_queryset())
        tasks = filtered_qs
        for i in tasks:
            if i.date <= date.today() and i.status == 'NEW':
                i.delayed = 'This task is delayed'
                i.save()
            else:
                i.delayed = ''
                i.save()
        pagination_class = CustomPagination()
        page = pagination_class.paginate_queryset(tasks, request)
        serializer = IndexSerializer(page, many=True)
        return Response(serializer.data)
...