QuerySet API¶
- class autodealer.queryset.DoesNotExist[исходный код]¶
Базовые классы:
ExceptionОбъект не найден. Выбрасывается из
QuerySet.get().
- class autodealer.queryset.MultipleObjectsReturned[исходный код]¶
Базовые классы:
ExceptionНайдено более одного объекта. Выбрасывается из
QuerySet.get().
- class autodealer.queryset.QuerySet(model: type[T])[исходный код]¶
Базовые классы:
Generic[T]Цепочечный построитель запросов, аналогичный Django QuerySet.
Не выполняет SQL до вызова терминального метода (
all(),first(),last(),count(),get(),exists(),values()).Не создавать напрямую — использовать
Model.objects.Example:
# Все активные банки, отсортированные по имени banks = Bank.objects.filter(hidden=0).order_by('name').all() # Один объект или исключение bank = Bank.objects.get(bank_id=1) # Проверка существования if Bank.objects.filter(name__icontains='сбер').exists(): ...
- filter(**kwargs: Any) QuerySet[T][исходный код]¶
Добавить условия фильтрации (WHERE).
Поддерживаются лукапы через
__:exact,iexact,contains,icontains,startswith,endswith,gt,gte,lt,lte,in,isnull.- Параметры:
**kwargs – Условия вида
field=valueилиfield__lookup=value.- Результат:
Новый
QuerySetс добавленными условиями.
Example:
Bank.objects.filter(hidden=0, name__icontains='сбер')
- exclude(**kwargs: Any) QuerySet[T][исходный код]¶
Исключить записи, соответствующие условиям (WHERE NOT).
- Параметры:
**kwargs – Условия вида
field=valueилиfield__lookup=value.- Результат:
Новый
QuerySet.
- order_by(*fields: str) QuerySet[T][исходный код]¶
Задать сортировку.
Префикс
-означает сортировку по убыванию.- Параметры:
*fields – Имена полей.
'-name'— DESC,'name'— ASC.- Результат:
Новый
QuerySet.
Example:
Bank.objects.order_by('-bank_id', 'name')
- limit(n: int) QuerySet[T][исходный код]¶
Ограничить количество результатов (LIMIT).
- Параметры:
n – Максимальное число записей.
- Результат:
Новый
QuerySet.
- offset(n: int) QuerySet[T][исходный код]¶
Пропустить первые n записей (OFFSET).
- Параметры:
n – Число пропускаемых записей.
- Результат:
Новый
QuerySet.
- all() list[T][исходный код]¶
Выполнить запрос и вернуть все результаты.
- Результат:
Список экземпляров модели (detached от сессии).
- first() T | None[исходный код]¶
Вернуть первую запись или
None.- Результат:
Экземпляр модели или
None.
- last() T | None[исходный код]¶
Вернуть последнюю запись или
None.- Результат:
Экземпляр модели или
None.
- get(**kwargs: Any) T[исходный код]¶
Вернуть ровно одну запись.
- Параметры:
**kwargs – Дополнительные условия (как в
filter()).- Результат:
Экземпляр модели.
- Исключение:
DoesNotExist – Запись не найдена.
MultipleObjectsReturned – Найдено более одной записи.
Example:
bank = Bank.objects.get(bank_id=1)
- count() int[исходный код]¶
Вернуть количество записей (SELECT COUNT(*)).
- Результат:
Целое число.
- exists() bool[исходный код]¶
Проверить, есть ли хотя бы одна запись.
- Результат:
Trueесли записи существуют.
- values(*fields: str) list[dict][исходный код]¶
Вернуть список словарей вместо экземпляров модели.
- Параметры:
*fields – Имена полей. Если не переданы — все колонки.
- Результат:
Список
dict.
Example:
Bank.objects.filter(hidden=0).values('bank_id', 'name') # [{'bank_id': 1, 'name': 'Сбербанк'}, ...]
- create(**kwargs: Any) T[исходный код]¶
Создать и сохранить новую запись.
- Параметры:
**kwargs – Значения полей новой записи.
- Результат:
Сохранённый экземпляр модели (атрибуты доступны после коммита).
Example:
bank = Bank.objects.create(name='Тинькофф', bik='044525974')
- update(**kwargs: Any) int[исходный код]¶
Массово обновить записи, соответствующие фильтрам.
- Параметры:
**kwargs – Поля и новые значения.
- Результат:
Количество изменённых строк.
Example:
Bank.objects.filter(hidden=1).update(hidden=0)
- delete() int[исходный код]¶
Массово удалить записи, соответствующие фильтрам.
- Результат:
Количество удалённых строк.
Example:
Bank.objects.filter(hidden=1).delete()
- class autodealer.queryset.Manager[исходный код]¶
Базовые классы:
objectDescriptor that provides Django-like Model.objects access.
Attach to a class with:
class MyModel(Base): objects = Manager()
Таблица лукапов¶
Лукап |
SQL |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|