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()は、少なくとも1行が一致する場合はTrueを、1行も一致しない場合はFalseを返します。どちらも、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. Tolkienの本:J.R.R. Tolkienの本が本棚にあるかどうか
quiz icon腕試し

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

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

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