Когда QuerySet выполняет запросы к БД

Python Middle Без компании
Когда QuerySet выполняет запросы к БД
Ответы
QuerySet в Django ленив — запрос к БД выполняется только при необходимости. Это происходит в следующих случаях: - **Итерация** по QuerySet (например, в цикле `for`). - **Срезы** с указанием шага (`[::2]`), но не простые срезы (`[:5]`). - **Вызов `len()`**, `list()`, `bool()` или проверка в `if`. - **Сериализация** (например, при рендеринге шаблона). - **Явный вызов `exists()`**, `count()`, `get()` или `first()`. Пример: ``` # Запрос не выполнен qs = MyModel.objects.filter(active=True) # Запрос выполнится здесь for obj in qs: print(obj.name) # И здесь (новый запрос) active_count = qs.count() ``` Ленивая загрузка позволяет комбинировать цепочки фильтров без лишних запросов.