ValuesQuerySet 是查询集的评估形式吗?
is ValuesQuerySet an evaluated form of queryset?
当您对查询集执行某些操作(例如 len 或切片)时,您会点击 DB 并评估查询。
从 values() or values_list()
返回的 ValuesQuerySet 是否已经过评估?
即它是否已经命中 DB?
否,ValuesQuerySet
未评价:
>>> from app.models import *
>>> from django.db import connection
>>> qs = Question.objects.all().values()
>>> len(connection.queries) # no db hit
0
>>> v = list(qs)
>>> len(connection.queries) # db hit
1
当您对查询集执行某些操作(例如 len 或切片)时,您会点击 DB 并评估查询。
从 values() or values_list()
返回的 ValuesQuerySet 是否已经过评估?
即它是否已经命中 DB?
否,ValuesQuerySet
未评价:
>>> from app.models import *
>>> from django.db import connection
>>> qs = Question.objects.all().values()
>>> len(connection.queries) # no db hit
0
>>> v = list(qs)
>>> len(connection.queries) # db hit
1