切片Django查询集而不从数据库中检索所有内容

时间:2017-06-12 17:58:46

标签: python django django-queryset

让我们说,我想要Django查询集中的前12个元素。现在我可以轻松地执行以下操作:

queryset = Content.objects.all()[:12]

这有效,但我正在检索数据库中的每个内容。有一个更好的方法吗?我在想的只是从数据库中检索查询集中的前12个项目。

感谢。

1 个答案:

答案 0 :(得分:3)

实际上,这是django ORM的正确限制语法。如果你打开一个shell并试一试,你会注意到它在做什么。

>>> queryset = Content.objects.all()[:12]
>>> queryset
<QuerySet [...]>
>>> str(queryset.query)
'SELECT * FROM "content" LIMIT 12'