Фильтрация набора запросов с помощью подзапроса по двум условиям
Мне нужно отфильтровать набор запросов 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')
Это не ответ на первоначальный вопрос, но это может кому-то помочь.