Sobes.tech
Back to questions
Junior — Middle
64

Можешь перечислить различные методы работы с QuerySet в Django?

Answer from AI

sobes.tech AI

В Django QuerySet — это ленивый набор запросов к базе данных, который позволяет фильтровать, сортировать и изменять выборку данных.

Основные методы работы с QuerySet:

  • filter(**kwargs) — фильтрует записи по заданным условиям.
  • exclude(**kwargs) — исключает записи, соответствующие условиям.
  • all() — возвращает все записи.
  • order_by(*fields) — сортирует записи по указанным полям.
  • values(*fields) — возвращает QuerySet словарей с указанными полями.
  • values_list(*fields, flat=False) — возвращает кортежи значений указанных полей.
  • get(**kwargs) — возвращает один объект, соответствующий условиям (выбрасывает исключение, если объектов нет или их несколько).
  • count() — возвращает количество записей.
  • exists() — проверяет, есть ли записи.
  • update(**kwargs) — обновляет поля выбранных записей.
  • delete() — удаляет записи.
  • select_related(*fields) — оптимизирует запросы с внешними ключами, делая JOIN.
  • prefetch_related(*fields) — оптимизирует запросы с ManyToMany и обратными связями.

Пример:

from myapp.models import Book

books = Book.objects.filter(author='Толстой').order_by('title')
for book in books:
    print(book.title)