Подсчёт записей
Часть раздела Модели и панель администратора путешествия по 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