Django 反向查询 OFFSET 1

Django Reverse Query OFFSET 1

我在反转查询时遇到 OFFSET 问题。我正在使用 Django 1.8 和 Python 2.7。 以下两行代码不会将反向查询偏移 1。但是两者都会偏移任何大于 1 的值。

Article.objects.all().order_by('-id')[:2:1]
Article.objects.all().order_by('id').reverse()[:2:1]

方括号中的第二个数字是OFFSET,第一个是LIMIT。如果我将 2 放入 OFFSET 中,查询偏移量为 2,但是当我将 1 放入 OFFSET 中时,查询偏移量为 0。我如何偏移 1? 有吗django 框架中的错误?

您误解了切片语法。它与列表完全相同。开始的是 first 参数,但您完全省略了该参数;您只提供了第二个(结束)和第三个(步骤)值。

您的代码应该是:

Article.objects.all().order_by('-id')[1:2]

或者只是

Article.objects.all().order_by('-id')[1]