Подсчёт записей
Часть раздела Модели и панель администратора путешествия по Django на Coddy. Урок 10 из 23.
Чтобы узнать, сколько у тебя книг в жанре научной фантастики, можно загрузить их все и посчитать в Python. База данных считает быстрее. Каждый из этих вариантов выполняет один небольшой запрос и возвращает один ответ:
Book.objects.filter(is_read=True).count() # 1
Book.objects.filter(price__gt=20).exists() # False
len(Book.objects.all()) # 9, после загрузки всех 9 строкcount() возвращает количество подходящих строк. exists() отвечает True или False: есть ли хотя бы одна? Оба метода вызываются в конце QuerySet, после filter() или exclude(). len() возвращает то же число, что и count(), но только после того, как все строки загружены в Python, что медленно для большой таблицы.
Задание
ЛегкоПерепишите explore.py, чтобы вывести две строки:
Science fiction:и количество книг в жанре научной фантастики.Any Tolkien:и наличие на полке книги автораJ.R.R. Tolkien.
Нажмите «Запустить». В консоли появятся Science fiction: 3 и Any Tolkien: True.
Попробуйте сами
from books.models import Book
# 1. Научная фантастика: сколько всего научно-фантастических книг
# 2. Книги Толкина: есть ли на полке книга J.R.R. Tolkien
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Модели и панель администратора
2Запросы с помощью ORM
Создание записейAll и GetФильтрация и поискПодсчёт записейСортировка записейОбновление и удалениеПотренируйтесь самостоятельно: Песочница Django