Django选择最大ID

时间:2010-05-21 18:19:00

标签: python django

给定一个带有自动设置“id”的标准模型(称为Image),如何获得最大ID?

到目前为止,我已经尝试过:

max_id = Image.objects.all().aggregate(Max('id'))

但是我收到了'id__max'关键错误。

尝试

max_id = Image.objects.order_by('id')[0].id

给出一个'参数2到map()必须支持迭代'异常

任何帮助?

7 个答案:

答案 0 :(得分:58)

在当前版本的django(1.4)中,它更具可读性

Image.objects.latest('id').id

答案 1 :(得分:38)

只需按反向ID排序,然后选择最顶层的。

Image.objects.all().order_by("-id")[0]

答案 2 :(得分:12)

我知道这已经有了正确的答案,但这是另一种方式:

prev = Image.objects.last()

这为您提供了最后一个对象。

答案 3 :(得分:2)

你的逻辑是对的,这将返回最大id

res = Image.objects.filter().aggregate(max_id=Max('pk'))
res.get('max_id')

答案 4 :(得分:2)

这对我有用

[模型].objects.last().id

Image.objects.last().id

答案 5 :(得分:0)

这也很完美:

max_id = Image.objects.values('id').order_by('-id').first()

答案 6 :(得分:-1)

没有捕获异常并使用django orm的最新对象:

Image.objects.filter().order_by('id').first()