Django模型查询集切片

Django模型查询集切片,django,django-models,django-queryset,Django,Django Models,Django Queryset,我尝试运行分页结果查询,如下所示 Model.objects.all()[start:start+page\u size] 我还想知道是否有更多的页面要加载,也就是说,我想知道start+page\u size

我尝试运行分页结果查询,如下所示
Model.objects.all()[start:start+page\u size]

我还想知道是否有更多的页面要加载,也就是说,我想知道
start+page\u size

我的问题是,如果我在这里调用两次
all()
,Django是否执行同一查询两次(一次用于切片操作
[]
,一次用于
count()


另一个问题是,如果我像这样对
Model.objects.all()
进行切片,那么Django是通过python从DB和切片中获取所有数据,还是Django仅使用SQL限制
限制2到9
进行两次查询,但这根本不是“同一次查询”。一个是从mymodel LIMIT OFFSET中选择*,另一个是从mymodel中选择计数(*)

如果要避免两次查询,一个简单的解决方法是要求比实际需要多一条记录:

Model.objects.all()[start: start+page_size+1]

然后,您可以迭代到页面大小,如果有额外记录,则显示下一步按钮。

如果
result=Model.objects.all()[a:a+101]
然后在result
sliced=result[a:a+100]
上切片,或者使用len()
len(result)
,Django会进行两次查询吗?顺便说一句,Django中分页的正确方法在这里