          if encoded is None:
              self.cursor = None
              (offset, reverse, current_position) = (0, False, '')
          else:
              self.cursor = decode_cursor(encoded)
              if self.cursor is None:
                  raise NotFound(self.invalid_cursor_message)
              (offset, reverse, current_position) = self.cursor
  
          # Cursor pagination always enforces an ordering.
 
</s> remove             (offset, reverse, current_position) = (0, False, '')
 </s> add             (offset, reverse, current_position) = (0, False, None) </s> remove             queryset = queryset.order_by('-' + self.ordering)
 </s> add             queryset = queryset.order_by(_reverse_ordering(self.ordering)) </s> remove         if current_position != '':
 </s> add         if current_position is not None:
            primary_ordering_attr = self.ordering[0].lstrip('-') </s> remove                 kwargs = {self.ordering + '__gt': current_position}
 </s> add                 kwargs = {primary_ordering_attr + '__gt': current_position} </s> remove         encoded = encode_cursor(cursor)
 </s> add         encoded = _encode_cursor(cursor)
            self.cursor = _decode_cursor(encoded)
          if encoded is None:
              self.cursor = None
              (offset, reverse, current_position) = (0, False, '')
          else:
            self.cursor = _decode_cursor(encoded)
              if self.cursor is None:
                  raise NotFound(self.invalid_cursor_message)
              (offset, reverse, current_position) = self.cursor
  
          # Cursor pagination always enforces an ordering.
keep keep keep keep replace keep keep keep keep keep
 Support for tuple ordering in cursor pagination 
rest_framework/pagination.py