В Django, `queryset is None` оценивает набор запросов? - PullRequest
0 голосов
/ 18 июня 2019

Оценивается ли Django queryset в следующих случаях?Если нет , то почему?

1.

if queryset is None:
    pass

2.

from django.db.models.query import QuerySet

if isinstance(queryset, QuerySet):
    pass

Это потому, что в обоих случаях python выполняет объектэталонное сравнение, которое не приводит к запросу?

1 Ответ

2 голосов
/ 18 июня 2019

Как задокументировано , набор запросов оценивается, когда вы пытаетесь получить доступ к его значениям - путем итерации по нему (прямо или косвенно), подписки / нарезки, печати (фактически: вызова repr() для него).) или тестирование это правда.

is - оператор идентификации, он сравнивает идентификаторы объектов, поэтому он не оценивает набор запросов.

isinstance проверяет класс объекта (и класс mro), поэтому он также не оценивает набор запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...