Фильтрация набора запросов с помощью подзапроса по двум условиям

Мне нужно отфильтровать набор запросов SomeModel по максимальной дате по группам (поле пользователя). Модель выглядит следующим образом:

class SomeModel(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    date = models.DateField(default=date.today)
    ...

Я уже создал некий подзапрос:

from django.db.models import Max

subquery = (SomeModel.objects
            .all()
            .values('user')
            .annotate(latest_date=Max('date')))

Я хочу использовать этот подзапрос для фильтрации набора запросов SomeModel по двум условиям:

# pseudocode 

SomeModel.objects.filter(user==subquery.user and time==subquery.latest_time)

Возможно ли это вообще или мой подход неверен?

Я обнаружил, что результат, который я хотел получить, может быть достигнут следующим образом:

SomeModel.objects.order_by('user', 'date').distinct('user')

Это не ответ на первоначальный вопрос, но это может кому-то помочь.

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