Menu
CoddyTech

データベースからリストを作る

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

ホームページには、ビューに直接入力された3つのタイトルがまだ表示されています。ページとモデルはビューでつながります。ビューはORMに行を問い合わせ、以前リストを渡したのと同じように、QuerySetをテンプレートに渡します。まだ読んでいない本のページは次のようになります。

from django.shortcuts import render

from .models import Book


def to_read(request):
    books = Book.objects.filter(is_read=False)
    return render(request, "books/to_read.html", {"books": books})

from .modelsのドットは、このアプリ自身のフォルダーを意味します。テンプレートでは、ループの各項目はBookなので、{{ book.title }}と{{ book.price }}でそのフィールドを読み取り、{{ book }}だけならその__str__を出力します。

challenge icon

チャレンジ

簡単
  • books/views.pyで、入力されたリストの代わりに、データベース内のすべての本をbooksとしてテンプレートに渡します。
  • home.htmlで、各本をタイトルと年を括弧で囲んで表示します。たとえば、Dune (1965)のようにします。

「実行」を押して/を開きます。「シェル」タブで本を追加し、ページを再読み込みすると、その本がリストに表示されます。

自分で試してみよう

from django.shortcuts import render


def home(request):
    books = ["Dune", "Emma", "The Hobbit"]
    return render(request, "books/home.html", {"books": books})

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

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