Как получить максимальное значение в django ORM

>>> AuthorizedEmail.objects.filter(group=group).values('added')
[{'added': datetime.datetime(2012, 5, 19, 13, 8, 7)}, 
{'added': datetime.datetime(2012, 5, 19, 13, 8, 7)}, 
{'added': datetime.datetime(2012, 5, 19, 13, 7, 23)}, 
{'added': datetime.datetime(2012, 5, 19, 13, 8, 7)}]

каков был бы лучший способ получить максимальное значение здесь? В python или в ORM?

4 ответов


>>> from django.db.models import Max
>>> AuthorizedEmail.objects.all().aggregate(Max('added'))

и получить значение в шаблоне:

{{ item.added__max }}

AuthorizedEmail.objects.filter(group=group).order_by('-added')[0]

latest возвращает последний объект в таблице по added дата:

AuthorizedEmail.objects.filter(group=group).latest('added')