Menu
CoddyTech

Подсчёт записей

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

challenge icon

Задание

Легко

Перепишите explore.py, чтобы вывести две строки:

  1. Science fiction: и количество книг в жанре научной фантастики.
  2. Any Tolkien: и наличие на полке книги автора J.R.R. Tolkien.

Нажмите «Запустить». В консоли появятся Science fiction: 3 и Any Tolkien: True.

Попробуйте сами

from books.models import Book

# 1. Научная фантастика: сколько всего научно-фантастических книг

# 2. Книги Толкина: есть ли на полке книга J.R.R. Tolkien
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Модели и панель администратора

Потренируйтесь самостоятельно: Песочница Django