Python rest_framework.pagination.CursorPagination() Examples
The following are 3
code examples of rest_framework.pagination.CursorPagination().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
rest_framework.pagination
, or try the search function
.
Example #1
Source File: pagination.py From py2swagger with MIT License | 6 votes |
def get_pagination_introspector(view, si=None): """ Create pagination introspector based on view :param view: DjangoRestFramework view :param si: SerializerIntrospector :return: PaginationIntrospector :rtype: BasePaginationIntrospector """ if getattr(view, 'pagination_class', None): # DjangoRestFramework 3.0 pagination style with pagination class pagination_class = view.pagination_class from rest_framework import pagination if pagination_class == pagination.PageNumberPagination: return PageNumberPaginationIntrospector(view, pagination_class, si=si) elif pagination_class == pagination.LimitOffsetPagination: return LimitOffsetPaginationIntrospector(view, pagination_class, si=si) elif pagination_class == pagination.CursorPagination: return CursorPaginationIntrospector(view, pagination_class, si=si) else: return BasePaginationIntrospector(view, pagination_class, si=si) else: # Unrecognized view type return BasePaginationIntrospector(si=si)
Example #2
Source File: entities.py From drf_openapi with MIT License | 6 votes |
def get_paginator_serializer(self, view, child_serializer_class): class BaseFakeListSerializer(serializers.Serializer): results = child_serializer_class(many=True) class FakePrevNextListSerializer(BaseFakeListSerializer): next = URLField() previous = URLField() # Validate if the view has a pagination_class if not (hasattr(view, 'pagination_class')) or view.pagination_class is None: return BaseFakeListSerializer pager = view.pagination_class if hasattr(pager, 'default_pager'): # Must be a ProxyPagination pager = pager.default_pager if issubclass(pager, (PageNumberPagination, LimitOffsetPagination)): class FakeListSerializer(FakePrevNextListSerializer): count = IntegerField() return FakeListSerializer elif issubclass(pager, CursorPagination): return FakePrevNextListSerializer return BaseFakeListSerializer
Example #3
Source File: factories.py From drf-schema-adapter with MIT License | 5 votes |
def pagination_factory(endpoint): pg_cls_name = '{}Pagination'.format(endpoint.model.__name__) page_size = getattr(endpoint, 'page_size', None) pg_cls_attrs = { 'page_size': page_size if page_size is not None else settings.REST_FRAMEWORK.get('PAGE_SIZE', 50), } if hasattr(endpoint, 'pagination_template'): pg_cls_attrs['template'] = endpoint.pagination_template BasePagination = getattr(endpoint, 'base_pagination_class', pagination.PageNumberPagination) if issubclass(BasePagination, pagination.PageNumberPagination): pg_cls_attrs['page_size_query_param'] = getattr(endpoint, 'page_size_query_param', 'page_size') for param in ('django_paginator_class', 'page_query_param', 'max_page_size', 'last_page_string', 'page_size'): if getattr(endpoint, param, None) is not None: pg_cls_attrs[param] = getattr(endpoint, param) elif issubclass(BasePagination, pagination.LimitOffsetPagination): pg_cls_attrs.pop('page_size') for param in ('default_limit', 'limit_query_param', 'offset_query_param', 'max_limit'): if getattr(endpoint, param, None) is not None: pg_cls_attrs[param] = getattr(endpoint, param) elif issubclass(BasePagination, pagination.CursorPagination): for param in ('page_size', 'cursor_query_param', 'ordering'): if getattr(endpoint, param, None) is not None: pg_cls_attrs[param] = getattr(endpoint, param) else: raise ImproperlyConfigured('base_pagination_class needs to be a subclass of one of the following:' 'PageNumberPagination, LimitOffsetPagination, CursorPagination') return type(pg_cls_name, (BasePagination, ), pg_cls_attrs)