Как избежать дублирования объектов в пагинации django при использовании order_by('?')

Я использую viewset в rest framework. Я получаю одни и те же объекты на разных страницах. Как я могу избежать этого.

class Viewset(viewsets.ModelViewSet):
    queryset = Model.objects.all().order_by('?')
    serializer_class = MySerializer
    pagination_class = StandardPagination

Я думаю, что вы можете загрузить уже найденные идентификаторы при вызове GET API.

import json
class Viewset(viewsets.ModelViewSet):
    queryset = Model.objects.all()
    serializer_class = MySerializer
    pagination_class = StandardPagination

    def get_queryset(self):
        qs = super().get_queryset()
        exclude_ids = self.request.GET.get('exclude_ids')
        if exclude_ids :
            ids = json.loads(exclude_ids)
            return qs.exclude(id__in = ids)
        return qs
            

Конечно, во фронтенде необходимо загрузить массив найденных идентификаторов. Например,

localhost:8080/...?exclude_ids=[1,3,10,5]
Вернуться на верх