Add a check in CursorPagination.paginate_queryset to only apply the default the order_by method if the queryset is not ordered.

This commit is contained in:
Vlad Dragos 2015-03-19 10:30:45 +02:00
parent e34e0536b1
commit 539748cb69

View File

@ -512,10 +512,11 @@ class CursorPagination(BasePagination):
(offset, reverse, current_position) = self.cursor (offset, reverse, current_position) = self.cursor
# Cursor pagination always enforces an ordering. # Cursor pagination always enforces an ordering.
if reverse: if not queryset.ordered:
queryset = queryset.order_by(*_reverse_ordering(self.ordering)) if reverse:
else: queryset = queryset.order_by(*_reverse_ordering(self.ordering))
queryset = queryset.order_by(*self.ordering) else:
queryset = queryset.order_by(*self.ordering)
# If we have a cursor with a fixed position then filter by that. # If we have a cursor with a fixed position then filter by that.
if current_position is not None: if current_position is not None: