通过查询集中的IntegerField按值获取对象

时间:2014-03-28 15:58:13

标签: django

class Test(models.Model): 
    quantity = models.IntegerField()

如何检索"数量"是价值方面的第五个(从最高点开始)?

1 个答案:

答案 0 :(得分:3)

如果你想要第五项:

t = Test.objects.order_by('-quantity')[4]

(索引从0开始,所以4指的是第5个元素) order_by非常自我解释,请注意-将查询集从最高位置排序到最低位置。

你也可以试试

  t = Test.objects.order_by('quantity')[-5]

顺序是反向的,你取第5个最后一个元素。

为确保存在第5个元素,您可能有:

if Test.objects.all().count() >= 5:
    t = Test.objects.order_by('-quantity')[4]
else:
    pass # do something