Попытка разбить на страницы большой набор запросов, чтобы я мог вернуться в ту же позицию, в которой находился ранее, даже если данные были добавлены в базу данных.
В настоящее время у меня есть класс пагинации:
from rest_framework.pagination import CursorPagination
class MessageCursorPagination(CursorPagination):
page_size = 25
ordering = '-date'
В моем представлении у меня есть:
from rest_framework.generics import GenericAPIView
from rest_framework.authentication import TokenAuthentication, BasicAuthentication
class MessageViewSet(GenericAPIView):
permission_classes = (IsAuthenticated, )
authentication_classes = (TokenAuthentication,)
pagination_class = pagination.MessageCursorPagination
serializer_class = serializers.MessageSerializer
def get(self, request, **kwargs):
account_id = kwargs.get('account_id', None)
messages = models.Message.objects.filter(
account=account_id)
paginated_messages = self.paginate_queryset(messages)
results = self.serializer_class(paginated_messages, many=True).data
response = self.get_paginated_response(results)
return response
Во время тестирования, чтобы убедиться, что я все настроил правильно, я получил ожидаемые результаты со следующей ссылкой и нулевым для предыдущей ссылки.,После перехода к следующей ссылке я получаю новую следующую ссылку, следующий набор результатов и предыдущую ссылку.При переходе к следующей ссылке я получаю ту же предыдущую ссылку, что и раньше, но со следующей, следующей ссылкой и следующим набором данных.Независимо от того, сколько раз я перехожу к следующей ссылке, предыдущая ссылка остается прежней.
Почему предыдущая ссылка не обновляется?
- Обновление -
Похоже, причина моей проблемы в том, что у меня много сообщений в один и тот же день.Упорядочивание по дате пытается вернуться к дате перед текущим курсором.Как я могу упорядочить по дате, но пошагово пройти по списку, используя нумерацию курсора, как если бы я использовал ids?