Встречается на собеседованиях • сегодня

Как работают QuerySet в Django

QuerySet в Django — это лениво (lazy) оцениваемая коллекция объектов модели. Он не выполняет запрос к БД до тех пор, пока не будет явно запрошен результат (например, итерация, печать, вызов list() и т. д.).

Пример:

python
# Запрос не выполняется сразу
queryset = User.objects.filter(is_active=True)

Запрос выполняется только здесь (при итерации)

for user in queryset:
print(user.username)

text

**Ключевые особенности:**  
- **Цепочка методов:** Можно строить цепочки фильтров (`filter()`, `exclude()`), которые объединяются в один SQL-запрос.  
- **Кеширование:** При первом выполнении QuerySet кеширует результаты.  
- **Ленивость:** Запросы выполняются только при необходимости.  
- **Методы, вызывающие запрос:** `len()`, `list()`, `bool()`, итерация, срезы (`[5:10]`).  

**Пример с цепочкой:**  
```python
active_users = User.objects.filter(is_active=True).exclude(is_staff=True)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы