Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
分页不适用于django rest_框架中的视图集_Django_Python 3.x_Django Rest Framework_Django Pagination_Django 2.x - Fatal编程技术网

分页不适用于django rest_框架中的视图集

分页不适用于django rest_框架中的视图集,django,python-3.x,django-rest-framework,django-pagination,django-2.x,Django,Python 3.x,Django Rest Framework,Django Pagination,Django 2.x,paginate.py class StandardResultsSetPagination(PageNumberPagination): page_size = 3 page_size_query_param = 'page_size' max_page_size = 5 class AreaUsersSerializer(serializers.ModelSerializer): class Meta: model = User

paginate.py

class StandardResultsSetPagination(PageNumberPagination):
    page_size = 3
    page_size_query_param = 'page_size'
    max_page_size = 5
class AreaUsersSerializer(serializers.ModelSerializer):

    class Meta:
        model = User
        fields = ('id', 'first_name', 'areas')
class AreaUsers(viewsets.ViewSet):
    queryset = User.objects.all()
    serializer_class = AreaUsersSerializer        
    pagination_class = StandardResultsSetPagination  # Not working


    def list(self, request):
        queryset = User.objects.all()[:10]
        serializer = AreaUsersSerializer(queryset, many=True)
        return Response(serializer.data)
序列化程序.py

class StandardResultsSetPagination(PageNumberPagination):
    page_size = 3
    page_size_query_param = 'page_size'
    max_page_size = 5
class AreaUsersSerializer(serializers.ModelSerializer):

    class Meta:
        model = User
        fields = ('id', 'first_name', 'areas')
class AreaUsers(viewsets.ViewSet):
    queryset = User.objects.all()
    serializer_class = AreaUsersSerializer        
    pagination_class = StandardResultsSetPagination  # Not working


    def list(self, request):
        queryset = User.objects.all()[:10]
        serializer = AreaUsersSerializer(queryset, many=True)
        return Response(serializer.data)
视图.py

class StandardResultsSetPagination(PageNumberPagination):
    page_size = 3
    page_size_query_param = 'page_size'
    max_page_size = 5
class AreaUsersSerializer(serializers.ModelSerializer):

    class Meta:
        model = User
        fields = ('id', 'first_name', 'areas')
class AreaUsers(viewsets.ViewSet):
    queryset = User.objects.all()
    serializer_class = AreaUsersSerializer        
    pagination_class = StandardResultsSetPagination  # Not working


    def list(self, request):
        queryset = User.objects.all()[:10]
        serializer = AreaUsersSerializer(queryset, many=True)
        return Response(serializer.data)
我只是想知道这段代码的作用是什么,为什么不应用分页。它在api视图中显示了所有10个值

class StandardResultsSetPagination(pagination.PageNumberPagination):

    def get_paginated_response(self, data):

        return Response({
            'links': {
                'next': self.get_next_link(),
                'previous': self.get_previous_link()
            },
            'current_page': int(self.request.query_params.get('page', 1)),
            'total': self.page.paginator.count,
            'per_page': self.page_size,
            'total_pages': round(self.page.paginator.count/self.page_size, 1),
            'data': data,
        })

    class AreaUsers(viewsets.ViewSet):
        queryset = User.objects.all()
        serializer_class = AreaUsersSerializer    


        def list(self, request):
            queryset = User.objects.all()[:10]
            paginator = StandardResultsSetPagination()
            page_size = 5
            paginator.page_size = page_size
            result_page = paginator.paginate_queryset(queryset, request)
            serializer = UserSerializer(result_page, many=True)
            return paginator.get_paginated_response(serializer.data)

非常感谢你,它工作得很好:)@gorkali Khadka