Для дальнейшего расширения исходный код скажет вам правду.
assert self.queryset is not None, (
"'%s' should either include a `queryset` attribute, "
"or override the `get_queryset()` method."
% self.__class__.__name__
)
queryset = self.queryset
if isinstance(queryset, QuerySet):
# Ensure queryset is re-evaluated on each request.
queryset = queryset.all()
return queryset
- Сначала он проверяет, определен ли набор запросов
- Во-вторых, он проверяет,указанный набор запросов является экземпляром класса Queryset Джанго
- В-третьих, он переоценивает (делает запрос к базе данных) набор запросов и устанавливает результаты
- В-четвертых, он возвращает результаты
Предупреждение об непосредственном использовании self.queryset заключается в том, что результаты оцениваются при кэшировании, поэтому дальнейшие ссылки на это значение не будут актуальными в отличие от использования self.get_queryset ().