Зачем нужны QuerySet в Django

Python Senior Без компании
Зачем нужны QuerySet в Django
Ответы
QuerySet в Django — это мощный инструмент для работы с базой данных, представляющий собой лениво оцениваемую коллекцию объектов модели. Он позволяет строить сложные SQL-запросы в декларативном стиле, не выполняя их до момента реального использования данных. **Основные преимущества:** - **Ленивая загрузка:** Запрос выполняется только при явном обращении к данным (итерация, срез, вызов `list()` и т.д.). - **Цепочка методов:** Можно комбинировать фильтры (`filter()`), исключения (`exclude()`), сортировку (`order_by()`). - **Оптимизация:** Использование `select_related()` и `prefetch_related()` для уменьшения количества запросов. Пример: ``` # Запрос не выполняется сразу qs = Book.objects.filter(author__name='Достоевский').exclude(year__lt=1860) # Запрос выполнится только здесь for book in qs: print(book.title) ``` **Важно:** Каждый новый QuerySet создает новый запрос, а не модифицирует существующий.