首页 > 解决方案 > Django Rest Framework分页不起作用

问题描述

这些是我的版本

Django==3.0.2
djangorestframework==3.11.0

这是我的设置

REST_FRAMEWORK = {
        'DEFAULT_PERMISSION_CLASSES': [
            'rest_framework.permissions.IsAuthenticated',
        ],
        'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
        'PAGE_SIZE': 10
    }

这是我的观点:

class CostList(ListCreateAPIView):
    serializer_class = CostSerializers

    def get_queryset(self):
        cost = Cost.objects.filter(
            id='filtered with one of my id'
        )
        return cost

这是我的序列化程序:

class CostSerializers(ModelSerializer):
    class Meta:
        model = Cost
        fields = '__all__'

一切正常,但唯一的问题是分页。我在模型中有 100 多个条目,cost我看到它正在一起渲染所有条目,而不是按照我的设置对项目进行分页

标签: djangodjango-rest-framework

解决方案


class CostList(ListCreateAPIView):
    serializer_class = CostSerializers

    def get_queryset(self):
        cost = Cost.objects.filter(id='filtered with one of my id')
        return cost

    def get(self, request, *args, **kwargs):
        qs = self.get_queryset()
        page = self.paginate_queryset(qs)
        return self.get_paginated_response(page)

尝试这个。


推荐阅读