Продвинутый Django 5 для продолжающих

Прогресс по курсу:  0/193

2.6 Методы, которые не возвращают QuerySet
3 из 3 шагов пройдено

contains()

Метод contains() возвращает True, если набор QuerySet содержит определенный объект, и False - если не содержит:

В данном запросе мы сначала выбрали первый объект с именем "John" и далее отфильтровали всех работников, кто младше 35 лет и проверили есть ли среди них наш объект. И получили True. Потом мы повторили поиск, но уже по работникам старше 35 лет. И получили False.

Асинхронная версия acontains()

 

update()

Другой способ обновления объектов представляет метод update() в сочетании с методом filter, которые вместе выполняют один запрос к базе данных:

Employee.objects.filter(age__lt=30).update(department=2)

В данном примере мы выбрали всех сотрудников моложе 30 лет и присвоили их к отделу с id = 2.

Асинхронная версия aupdate()

 

delete()

Для удаления мы можем вызвать метод delete() (либо его) у удаляемого объекта:

e = Employee.objects.get(id=1)
e.delete()

Если не требуется получение отдельного объекта из базы данных, тогда можно удалить объект с помощью комбинации методов filter() и delete():

Employee.objects.filter(age_lt=30).delete()

Асинхронная версия adelete()

 

as_manager()

Метод класса, возвращающий экземпляр Manager с копией QuerySet методов. Об этом методе мы поговорим подробно в разделе 2.12 "Пользовательские менеджеры моделей"

 

explain()

Этот метод возвращает строку плана выполнения QuerySet. Используется для анализа производительности запросов.

Employee.objects.filter(age__lt=20).explain()


Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Оставить комментарий
Нет обсуждений. Начните первое.