如何通过Objects.filter从数据库中检索最后1,000个值?我目前正在做的是给我输入数据库中的前1,000个值(即10,000行,它带给我的是1-1000,而不是9000-1,000).
现行代码:
limit = 1000
Shop.objects.filter(ID = someArray[ID])[:limit]
Run Code Online (Sandbox Code Playgroud)
干杯
Ala*_*air 12
queryset = Shop.objects.filter(id=someArray[id])
limit = 1000
count = queryset.count()
endoflist = queryset.order_by('timestamp')[count-limit:]
Run Code Online (Sandbox Code Playgroud)
endoflist 是您想要的查询集.
以下是关于reverse() queryset方法的django文档.
要检索查询集中的"最后"五个项,您可以执行以下操作:
Run Code Online (Sandbox Code Playgroud)my_queryset.reverse()[:5]请注意,这与在Python中从序列末尾切片并不完全相同.上面的例子将首先返回最后一项,然后是倒数第二项,依此类推.如果我们有一个Python序列并查看seq [-5:],我们会先看到倒数第五个项目.Django不支持这种访问模式(从最后切片),因为它不可能在SQL中有效地执行.
所以我不确定我的答案是否效率低,效率极低.我移动order_by到最后的查询,但我不确定这是否有所作为.
| 归档时间: |
|
| 查看次数: |
7204 次 |
| 最近记录: |