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

Что такое QuerySet в Django

QuerySet в Django — это лениво оцениваемая (lazy) коллекция объектов модели, представляющая набор записей из базы данных. Он позволяет строить сложные запросы к БД, объединяя методы фильтрации, сортировки и агрегации, без немедленного выполнения запроса.

Ключевые особенности:

  • Ленивая загрузка: запрос выполняется только при явном обращении к данным (итерация, срез, вызов list() и т.д.).
  • Цепочка методов: методы (filter(), exclude(), order_by()) можно объединять.
  • Неизменяемость: каждый метод возвращает новый QuerySet.

Пример:

python
# Создание QuerySet (запрос еще не выполнен)
books = Book.objects.filter(author='Достоевский').order_by('-published_date')

# Запрос выполнится при итерации
for book in books:
    print(book.title)

# Или при явном преобразовании
book_list = list(books)

Методы:

  • filter() / exclude() — условия WHERE.
  • annotate() — добавление вычисляемых полей.
  • select_related() / prefetch_related() — оптимизация JOIN и связанных объектов.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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