Menu
CoddyTech

行数のカウント

CoddyのDjangoジャーニー「モデルと管理サイト」セクションの一部。レッスン 10/23。

自分が何冊のSF小説を持っているか知りたいときは、すべて読み込んでPythonで数えることもできます。データベースならもっと速く数えられます。次のコードはそれぞれ小さなクエリを1つ実行し、答えを1つだけ返します。

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で答えます。つまり、少なくとも1つあるかどうかを返します。どちらも、filter()またはexclude()の後に、QuerySetの最後に置きます。len()はcount()と同じ数を返しますが、すべての行をPythonに読み込んだ後にしか使えないため、大きなテーブルでは遅くなります。

challenge icon

チャレンジ

簡単

explore.pyを書き換えて、次の2行を出力します。

  1. Science fiction:と、SF小説が何冊あるか。
  2. Any Tolkien:と、J.R.R. Tolkienの本が本棚にあるかどうか。

「実行」を押します。コンソールにはScience fiction: 3とAny Tolkien: Trueが表示されます。

自分で試してみよう

from books.models import Book

# 1. SF:SFの本が何冊あるか

# 2. トールキンの本:J.R.R. Tolkienの本が棚にあるかどうか
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

モデルと管理サイトのすべてのレッスン

自分で練習してみよう: Djangoプレイグラウンド