Django的QuerySet具有延迟
特性,仅在强制操作下才会被执行,这种行为使得QuerySet更加的高效
我们可以连接任意一个过滤器到一个QuerySet上,在QuerySet计算之前
并不会访问数据库
QuerySet被计算的场合
- 首次迭代时
- 当对QuerySet访问时,如Post.objects.all()[:4]
- 当对QuerySet缓存时
- 当在QuerySet上调用repr()或len()时
- 当在QuerySet上显示调用list()时
- 当在某个语句中对QuerySet进行测试时,如bool(), or, and 或 if