🐍 Совет для Django-разработчиков: избегайте бесполезного использования .all()
Когда вы пишете запрос в Django ORM, важно понимать, как работают QuerySet. Например, если у вас есть такой код:
Использование .all() здесь лишнее. Эквивалентный код без него будет выглядеть так:
Почему? Дело в том, что менеджер Digger.objects уже ссылается на все объекты модели Digger. Вызов .filter() создаёт QuerySet с применённым фильтром. Добавление .all() лишь создает лишнюю копию QuerySet между этими шагами.
О том, когда применять .all() всё-таки нужно, читайте в статье 👈
Когда вы пишете запрос в Django ORM, важно понимать, как работают QuerySet. Например, если у вас есть такой код:
Digger.objects.all().filter(height_cm__gt=200)
Использование .all() здесь лишнее. Эквивалентный код без него будет выглядеть так:
Digger.objects.filter(height_cm__gt=200)
Почему? Дело в том, что менеджер Digger.objects уже ссылается на все объекты модели Digger. Вызов .filter() создаёт QuerySet с применённым фильтром. Добавление .all() лишь создает лишнюю копию QuerySet между этими шагами.
О том, когда применять .all() всё-таки нужно, читайте в статье 👈