      For an overview of the position/offset style we use, see this post:
      http://cramer.io/2011/03/08/building-cursors-for-the-disqus-api/
      """
      cursor_query_param = 'cursor'
      page_size = api_settings.PAGE_SIZE
      invalid_cursor_message = _('Invalid cursor')
      ordering = '-created'
      template = 'rest_framework/pagination/previous_and_next.html'
  
      def paginate_queryset(self, queryset, request, view=None):
 
</s> remove         if self.page_size is None:
 </s> add         self.page_size = self.get_page_size(request)
        if not self.page_size: </s> remove class CursorPagination(BasePagination):
 </s> add class CursorPagination(BasePageSizePagination):
      For an overview of the position/offset style we use, see this post:
      http://cramer.io/2011/03/08/building-cursors-for-the-disqus-api/
      """
      cursor_query_param = 'cursor'

      invalid_cursor_message = _('Invalid cursor')
      ordering = '-created'
      template = 'rest_framework/pagination/previous_and_next.html'
  
      def paginate_queryset(self, queryset, request, view=None):
keep keep keep keep replace keep keep keep keep keep
 use PageSizePaginationMixin for CursorPagination
tests for custom page_size in CursorPagination 
rest_framework/pagination.py