在以下情况下,是否评估了Django queryset
?如果否,为什么?
if queryset is None:
pass
from django.db.models.query import QuerySet
if isinstance(queryset, QuerySet):
pass
是因为在这两种情况下python都执行对象引用比较,但这不会导致查询吗?
答案 0 :(得分:2)
As documented,当您尝试访问查询集的值时,将对查询集进行评估-通过对其进行迭代(直接或间接),订阅/切片,打印(实际上:在其上调用ActionSheetContainer.show()
)或测试它的真实价值。
repr()
是身份运算符,它比较对象标识符,因此不评估查询集。
is
检查对象的类(和mro类),因此也不评估查询集。