首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在DRF中的一个视图中使用多个分页类

如何在DRF中的一个视图中使用多个分页类
EN

Stack Overflow用户
提问于 2020-02-26 18:58:42
回答 2查看 579关注 0票数 3

我想创建一个web服务器,供移动客户端和web客户端使用。Web客户端开发人员想要limit offset pagination,但移动客户端开发人员想要page number pagination

在django rest框架中,我们似乎不能将多个分页类分配给一个视图。

那么在这种情况下有什么解决方案吗?

EN

回答 2

Stack Overflow用户

发布于 2020-12-20 18:07:03

简单地使用property()函数。

代码语言:javascript
复制
class MyView(viewsets.ModelViewSet):
    def get_pagination_class(self):
        if some_codition:
           return PageNumberPagination
        return LimitOffsetPagination
    pagination_class = property(fget=get_pagination_class)

这就是你所需要的。

票数 0
EN

Stack Overflow用户

发布于 2021-05-31 16:56:58

@JPG的答案是正确的。只是增强一下-

代码语言:javascript
复制
 def get_pagination_class(self):
        return self.pagination_class()
    
    @property
    def paginator(self):
        """
        The paginator instance associated with the view, or `None`.
        """
        if not hasattr(self, '_paginator'):
            if self.get_pagination_class() is None:
                self._paginator = None
            else:
                self._paginator = self.get_pagination_class()
        return self._paginator


class MyView(MultiplePaginationMixin, viewsets.ModelViewSet):
    def get_pagination_class(self):
        if some_codition:
            return PageNumberPagination()
        return LimitOffsetPagination()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60412384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档