Django从表中检索所有行但最后三行

时间:2016-06-22 22:41:21

标签: python django database

我使用Book.objects.order_by('-id')[:3]得到最后三行,是否有办法获取排除这三个元素的所有行?

3 个答案:

答案 0 :(得分:1)

这应该有效,

Book.objects.order_by('-id')[3:]

如果你想按顺序获取它们

Book.objects.order_by('-id')[3:][::-1]

答案 1 :(得分:0)

你有

books = Book.objects.order_by('-id')[:3]

list_to_exclude = [b.id for b in books]

然后

books_excl = Book.objects.all().exclude(id__in=list_to_exclude)

答案 2 :(得分:0)

使用:

Book.objects.exclude(pk__in=Book.objects.order_by('-id')[:3])

注意:上面的查询在postgres 9.5.3上测试