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