如果您想查看发生的位置,请导入django.db.connection
并检查queries
>>> from django.db import connection
>>> from django.core.paginator import Paginator
>>> queryset = Entry.objects.all()
让我们创建分页器,看看是否有任何查询发生:
>>> paginator = Paginator(queryset, 10)
>>> print connection.queries
[]
还没有。
>>> page = paginator.page(4)
>>> page
<Page 4 of 788>
>>> print connection.queries
[{'time': '0.014', 'sql': 'SELECT COUNT(*) FROM `entry`'}]
创建页面产生了一个查询,以计算查询集中有多少条目。尚未提取条目。
将页面的对象分配给变量“对象”:
>>> objects = page.object_list
>>> print connection.queries
[{'time': '0.014', 'sql': 'SELECT COUNT(*) FROM `entry`'}]
这仍然没有导致条目被提取。
HttpResponse
从对象列表生成
>>> response = HttpResponse(page.object_list)
>>> print connection.queries
[{'time': '0.014', 'sql': 'SELECT COUNT(*) FROM `entry`'}, {'time': '0.011', 'sql': 'SELECT `entry`.`id`, <snip> FROM `entry` LIMIT 10 OFFSET 30'}]
最后,条目已被提取。