在Django中,“ queryset is None”会评估查询集吗?

时间:2019-06-18 11:43:09

标签: python django

在以下情况下,是否评估了Django queryset?如果,为什么?

1。

if queryset is None:
    pass

2。

from django.db.models.query import QuerySet

if isinstance(queryset, QuerySet):
    pass

是因为在这两种情况下python都执行对象引用比较,但这不会导致查询吗?

1 个答案:

答案 0 :(得分:2)

As documented,当您尝试访问查询集的值时,将对查询集进行评估-通过对其进行迭代(直接或间接),订阅/切片,打印(实际上:在其上调用ActionSheetContainer.show() )或测试它的真实价值。

repr()是身份运算符,它比较对象标识符,因此不评估查询集。

is检查对象的类(和mro类),因此也不评估查询集。