我尝试运行一个分页结果的查询,像这样:Model.objects.all()[start: start+page_size]
。
我还想知道是否有更多页面要加载,也就是说,我想知道是否 start+page_size < Model.objects.all().count()
。
我的问题是,如果我在这里调用all()
两次,Django是否会执行相同的查询两次(一次是切片操作[]
,一次是count()
)。
另一个问题是,如果我对Model.objects.all()
进行切片,例如Model.objects.all()[2:9]
,Django是从数据库中获取所有数据并由Python进行切片,还是只使用SQL限制limit 2 to 9
来获取数据。