Django Rest Framework:在ViewSet上启用分页(例如ModelViewSet分页)

Django Rest Framework:在ViewSet上启用分页(例如ModelViewSet分页),第1张

Django Rest Framework:在ViewSet上启用分页(例如ModelViewSet分页)

仅在使用通用视图或视图集时才自动执行分页

第一个障碍是将文档翻译成英文。他们想要传达的是您需要一个通用的视图集。通用viewsets从扩展通用ApiViews这对分页查询集和响应额外的类方法

另外,您提供了自己的

list
方法,但是默认的分页过程实际上是由mixin处理的:

class ListModelMixin(object):    """    List a queryset.    """    def list(self, request, *args, **kwargs):        queryset = self.filter_queryset(self.get_queryset())        page = self.paginate_queryset(queryset)        if page is not None: serializer = self.get_serializer(page, many=True) return self.get_paginated_response(serializer.data)        serializer = self.get_serializer(queryset, many=True)        return Response(serializer.data)

简单的解决方案,使用框架代码:

class Foo(mixins.ListModelMixin, viewsets.GenericViewSet):    queryset = User.objects.all()    serializer = UserSerializer

更为复杂的解决方案是,如果您需要一个自定义

list
方法,则应按照自己认为合适的方式编写,但要采用上述mixin代码段的样式。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5674442.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存