DjangoFilterBackend与Pagination重写get_paginated_response不能共存问题
来源:5-11 drf的过滤

qq_khrystal_0
2020-03-27
在StandardResultSetPagination
中重写了get_paginated_response
修改返回字段
class StandardResultSetPagination(PageNumberPagination):
page_size = 10
page_size_query_param = 'page_size'
page_query_param = 'nextId'
max_page_size = 100
def get_paginated_response(self, data):
# 修改返回字段
return Response(OrderedDict([
('count', self.page.paginator.count),
('isLastPage', self.page.has_next()),
('nextId', None if not self.page.has_next() else self.page.next_page_number()),
('data', data)
]))
在View
中配置DjangoFilterBackend
会失效
class GoodsListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
queryset = Goods.objects.all().order_by('id')
serializer_class = GoodsModelSerializer
pagination_class = StandardResultSetPagination
filter_backends = (DjangoFilterBackend,)
filterset_fields = ['name', 'shop_price']
测试删除get_paginated_response
, 过滤器会生效 不知道是什么问题 是否有解决办法
版本
- Django 2.0
- djangorestframework 3.11.0
- django-filter 2.2.0
写回答
2回答
-
bobby
2020-03-28
你这里说的是重写这个方法导致了filter失败了? 失败是搜索不出来数据还是有异常信息?
052020-03-31 -
qq_khrystal_0
提问者
2020-03-27
貌似PageNumberPagination的子类 不能修改响应的字段名?
00
Python前后端分离开发Vue+Django REST framework实战
Django REST framework课程视频,RESTFul API前后端分离开发
2880 学习 · 2467 问题
相似问题