Какие знаешь методы QuerySet
Python
Senior
Без компании
Какие знаешь методы QuerySet
Ответы
QuerySet в Django предоставляет множество методов для фильтрации, сортировки и манипуляции данными. Основные методы:
- **Фильтрация**:
- `filter(**kwargs)` – возвращает QuerySet с объектами, соответствующими условиям.
- `exclude(**kwargs)` – исключает объекты, соответствующие условиям.
- `get(**kwargs)` – возвращает один объект или вызывает исключение.
- **Сортировка**:
- `order_by(*fields)` – сортирует результаты по указанным полям.
- **Агрегация**:
- `annotate(**kwargs)` – добавляет вычисляемые поля.
- `aggregate(**kwargs)` – возвращает словарь с агрегированными значениями.
- **Ленивые методы**:
- `all()` – возвращает все объекты.
- `values(*fields)` – возвращает QuerySet словарей с указанными полями.
- `values_list(*fields, flat=False)` – возвращает список кортежей или значений.
Пример:
```
from django.db.models import Count
# Фильтрация и аннотация
books = Book.objects.filter(author='Tolkien').annotate(num_reviews=Count('reviews'))
```