我想创建一个web服务器,供移动客户端和web客户端使用。Web客户端开发人员想要limit offset pagination,但移动客户端开发人员想要page number pagination。
在django rest框架中,我们似乎不能将多个分页类分配给一个视图。
那么在这种情况下有什么解决方案吗?
发布于 2020-12-20 18:07:03
简单地使用property()函数。
class MyView(viewsets.ModelViewSet):
def get_pagination_class(self):
if some_codition:
return PageNumberPagination
return LimitOffsetPagination
pagination_class = property(fget=get_pagination_class)这就是你所需要的。
发布于 2021-05-31 16:56:58
@JPG的答案是正确的。只是增强一下-
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()https://stackoverflow.com/questions/60412384
复制相似问题