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)