如果你想看到那裏正在發生,導入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'}]
最後,這些項目已被取出。
太棒了。我不知道django有檢查是否有查詢的工具。 – starcorn
@starcorn查看[django-debug-toolbar](https://github.com/django-debug-toolbar/django-debug-toolbar) – DrTyrsa
調試工具欄是每個Django開發人員都應該使用的工具,它是令人難以置信的方便。 – rectangletangle