Предположим, у меня есть две модели:
class Task(Model):
duration = models.IntegerField(default=100)
class Record(Model):
minutes_planned = models.IntegerField(default=0)
task = models.ForeignKey(Task, related_name=records)
Я хотел бы получить доступ ко всем объектам, у которых общее количество минут, запланированное для всех связанных записей, меньше, чем продолжительность объекта. У меня были проблемы с поиском решения в документах. Может ли кто-нибудь указать мне на это?
Task.objects.filter(duration__gt=F('records__minutes_planned')))
Task.objects.filter(duration__gt=Sum('records__minutes_planned'))
Task.objects.filter(duration__gt=Sum(F('records__minutes_planned')))
но пока ничего не получалось. Первый работал успешно, но, насколько я могу судить, он сравнивал их один за другим, а не со всеми записями.
Кажется, что Сумма ограничена использованием только в .aggregate()
. Тем не менее, я хотел бы получить сами объекты, а не набор значений, что мне даст .aggregate()
.
UPDATE:
Нашел эту часть документов , что выглядит многообещающе.