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
# Cursor pagination always enforces an ordering.
if reverse:
queryset = queryset.order_by(*_reverse_ordering(self.ordering))
else:
queryset = queryset.order_by(*self.ordering)
if not queryset.ordered:
if reverse:
queryset = queryset.order_by(*_reverse_ordering(self.ordering))
else:
queryset = queryset.order_by(*self.ordering)
# If we have a cursor with a fixed position then filter by that.
if current_position is not None: