Django的QuerySet具有延遲
特性,僅在強制操作下才會被執行,這種行爲使得QuerySet更加的高效
我們可以連接任意一個過濾器到一個QuerySet上,在QuerySet計算之前
並不會訪問數據庫
QuerySet被計算的場合
- 首次迭代時
- 當對QuerySet訪問時,如Post.objects.all()[:4]
- 當對QuerySet緩存時
- 當在QuerySet上調用repr()或len()時
- 當在QuerySet上顯示調用list()時
- 當在某個語句中對QuerySet進行測試時,如bool(), or, and 或 if