Django查询:
Django查询返回指定数量的数据:
dan_result = TrendData.objects.all().order_by('id')[-20:]
报以下错误:
Traceback (most recent call last):
...
AssertionError: Negative indexing is not supported.
Django查询不支持python负索引,但是我们可以使用其他的方法。 比如,稍微修改 order_by() 语句来实现:
dan_result = TrendData.objects.all().order_by('-id')[:20]
然后使用python列表反转来调整查询数据的顺序:
dan_result = list(reversed(dan_result))
注意:reversed()函数返回的是一个迭代器,而不是一个List,所以需要list函数转换一下
顺便整理下python列表的反转:
1.内建函数reversed()
>>> a = [1, 3, 4, 6, 2, 5]
>>> a = list(reversed(a))
>>> a
[5, 2, 6, 4, 3, 1]
注意:reversed()函数返回的是一个迭代器,而不是一个List,所以需要list函数转换一下
2.使用分片
>>> a = [1, 3, 4, 6, 2, 5]
>>> a = a[::-1]
>>> a
[5, 2, 6, 4, 3, 1]
注意:其中[::-1]代表从后向前取值,每次步进值为1