Django order_by не упорядочивает результаты запроса

Django не упорядочивает результаты по дате. Я использую Django-Rest-Framework для создания API для приложения, изначально у меня был фильтр по запросу, и после прочтения похожих вопросов, где люди сталкивались с той же проблемой при сочетании order_by и фильтра, я удалил фильтр и вручную отфильтровал с помощью цикла for, но все равно продолжаю получать те же результаты.

Первоначально запрос был:

progresslogs = ProgressLog.objects.filter(user__userprofile__coach=request.user).order_by('-date')

Но прочитав похожие вопросы, я изменил запрос и отфильтровал вручную, думаю, что есть проблема с использованием filter и order by вместе, но все равно получаю результаты не по порядку:

class ProgressLogAPI(APIView):
    def get(self, request: Request, format=None):
        if request.user.is_authenticated:
            if request.user.is_staff:
                logger.info('API: Staff {} fetched progress logs'.format(request.user.id))
                progresslogs = ProgressLog.objects.order_by('-date')
                # Below loop added to manually filter results
                filteredlogs = []
                for progress in progresslogs:
                    if progress.user.userprofile.coach == request.user:
                        filteredlogs.append(progress)

                serializer = ProgressLogSerializer(filteredlogs, many=True)
                return Response(data=serializer.data)

Но в каждом случае результаты приходят не по порядку, интересно, это какая-то ошибка в Django, я полагаю, что мог бы отсортировать результаты вручную, но думаю, что это резко увеличит время вызова API для получения результатов, поэтому не очень хочу этого делать.

Для справки ниже приведены первые 3 результата вызова API с неприменимыми данными, замененными символом '?', но по значениям дат ясно, что они вообще не упорядочены:

[
  {
    "id":?,
    "user":?,
    "front_pic":"?",
    "side_pic":"?",
    "back_pic":"?",
    "weight":"?",
    "date":"2022-04-30",
    "bicep":null,
    "chest":null,
    "legs":null,
    "waist":null,
    "body_fat":null
  },
  {
     "id":?,
     "user":?,
    "front_pic":"?",
    "side_pic":"?",
    "back_pic":"?",
    "weight":"?",
    "date":"2022-03-27",
    "bicep":null,
    "chest":null,
    "legs":null,
    "waist":null,
    "body_fat":null
  },
  {
    "id":?,
    "user":?,
    "front_pic":"?",
    "side_pic":"?",
    "back_pic":"?",
    "weight":"?",
    "date":"2022-05-22",
    "bicep":null,
    "chest":null,
    "legs":null,
    "waist":null,
    "body_fat":null
  },
  ...
]

Версия Django на сервере - 3.2.13 А версия python - 3.9

Благодарю за любую обратную связь по этому вопросу.

Не удалось решить проблему так, как я хотел, но использование ListViewAPI вместо этого, кажется, устранило ее, предполагая, что проблема может быть связана с Django-rest-фреймворком, поскольку результаты интерактивной оболочки соответствуют ожиданиям:

class ProgressLogAPI(ListAPIView):
    permission_classes = [IsAdminUser]
    queryset = ProgressLog.objects.filter(user__userprofile__coach=request.user).order_by('-date')
    serializer_class = ProgressLogSerializer
Вернуться на верх