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()