Django: получить значение другого поля из запроса агрегации - PullRequest
0 голосов
/ 27 апреля 2011
es = Employee.objects.filter(a few filters).aggregate(Max('Age'))

Этот запрос даст мне самого старого сотрудника, поэтому я также хочу узнать некоторую другую информацию, связанную с этой строкой, например, идентификатор.

Как мне это сделать? Спасибо.

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

Вам не нужен агрегат, вам нужно только упорядочить по убыванию возрастов ваш набор запросов

 Employee.objects.filter(a few filters).order_by(['-Age'])[0]

Даст вам самый старый

Или, если у вас есть несколько старых предметов

 age = None
 for x in Employee.objects.filter(a few filters).order_by(['-Age']):
    if age and age != x.Age:
       break
    age = x.Age 
0 голосов
/ 27 апреля 2011

Используйте annotate() вместо aggregate().

...