Фильтровать только одну строку за одну дату для разных приоритетов

Из запроса, который возвращает несколько строк с разным приоритетом данных. Мне нужно создать подтаблицу, содержащую только одну дату с наивысшим приоритетом. Мой подход заключался в том, чтобы просто сделать несколько запросов и вернуть query.first(). Но это вызовет соединение с базой данных x раз, где x - количество различных дней.

list_of_queries = []
for date in dates list:
        list_of_queries.append(
            self.get_queryset().filter(date).order_by(
                Case(
                    *[When(priority__iexact=priority, then=Value(i))
                     for i, priority in enumerate(priority_list)],
                    default=None
                ).asc()))

Таблица 1.

ID DATE PRIORITY
1 2022/11/1 1
2 2022/11/1 2
3 2022/11/1 3
4 2022/11/2 2
5 2022/11/3 1
6 2022/11/3 3

Таблица 2.

ID DATE PRIORITY
1 2022/11/1 1
4 2022/11/2 2
5 2022/11/3 1

Я думаю, что я мог бы использовать другой подход и просто собрать все строки с date__lte по date__gte и из этого подзапроса каким-то образом просто взять только одну дату. Но есть идеи, как это сделать в Django ORM? Или мне придется делать несколько запросов с фильтром = дата?

Вернуться на верх