如何在django ORM中获得最大值

时间:2012-05-19 20:22:31

标签: python django django-models

>>> 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 个答案:

答案 0 :(得分:26)

来自documentation

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

并获取模板中的值:

{{ item.added__max }}

答案 1 :(得分:5)

latest根据added日期返回表中的最新对象:

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

答案 2 :(得分:4)

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

答案 3 :(得分:3)