Оценка набора запросов Django - PullRequest
0 голосов
/ 18 ноября 2018

Допустим, у меня есть набор запросов, как следует.

queryset1 = Staff.objects.filter(user_id=self.request.user.id).values_list("department_id", flat=True)

если я пытаюсь передать набор запросов 1 в новый набор запросов, как показано ниже

queryset_form_1 = Department.objects.filter(pk__in=list(queryset1))
queryset_form_2 = Department.objects.filter(pk__in=queryset1)

как я упоминал выше, если я eval queryset1 с list(queryset1), он извлекает ожидаемый результат, но если я пытаюсь, как в queryset_form_2, он извлекает все записи, какую ошибку я допустил?

1 Ответ

0 голосов
/ 18 ноября 2018

Django QuerySet является ленивым .

Таким образом, вы должны использовать первый, потому что list (queryset1) заставляет вычислять ленивый запрос.И вы получите ожидаемый результат.

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