【发布时间】:2019-11-29 17:39:09
【问题描述】:
在 Django 2.0 中迭代大型 QuerySet 似乎不再是一个可行的选择。 我尝试使用 Django 自己的 Paginator 来加速它。
def read_from_db_4():
paginator = Paginator(DataSet.objects.filter(status_id=1).order_by('id'), 1000)
l = []
print("{} iterations!".format(paginator.num_pages))
for page in range(1, paginator.num_pages+1):
l = l + list(paginator.page(page).object_list)
print("{}, next page...".format(page))
return l
这个小功能相当快,但会在最后一页停止。
我也无法到达此页面的长度:
len(paginator.page(LASTPAGE).object_list)
这将永远挂起。 我以前可以得到所有其他页面的长度。
这种奇怪行为的原因是什么?
【问题讨论】:
标签: django django-models django-orm