Django Запрос к списку чисел и возврат выбранных строк

Я создаю представление табло для подсчета кнопок. Модель - это просто id пользователя и количество. API должен возвращать "id", "count" и "позицию" на табло. Если id не указан, то просто возвращается тройка лидеров. Но если есть id, то дополнительно к top three я должен предоставить позицию id на табло лидеров.

Проблема в том, что когда я использую Window( RowNumber() ), а затем пытаюсь выбрать по id, весь запрос выполняется для одного выбранного элемента. Поэтому "позиция" всегда равна 1.

Я нашел грязное решение практически брать сырой запрос после Window, а затем выбирать по id. В этом случае правильная "позиция" сохраняется. Но я чувствую, что есть лучший способ сделать это.

Я буду очень признателен за любые предложения

Использование:

sql, params = queryset.query.sql_with_params()
queryset = queryset.raw(f"SELECT ...", params)
Вернуться на верх