Встречается на собеседованиях • сегодня
Как работают 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)
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы