プログラミング学習393日目 〜Djangoのツボとコツがゼッタイにわかる本 第4章 ブログアプリケーションを作成しよう! 4−6 〜
詳細画面の作成。
大まかな流れとしては、views.pyでBlogDetailというclassを作ると想定して、まずurls.pyにパスの追加。BlogDetailのインポートも忘れずに。
from django.urls import path
from . views import BlogList, BlogDetail
urlpatterns = [
path('detail/<int:pk>', BlogDetail.as_view()),
]
path('detail/<int:pk>', BlogDetail.as_view())
のdetailのあとの<int:pk>はデータベーステーブルに設定されている個別のprimary keyのことでこれを指定することで個別のデータを取得できるようになります。
views.pyでBlogDetailというclassの作成。
from django.views.generic import ListView, DetailView
from . models import BlogModel
class BlogDetail(DetailView):
template_name = 'detail.html'
model = BlogModel
DetailViewというモジュールをインポートしているので、BlogDetailクラスの引数にこれを使うとことで少ないコードで詳細画面の設計ができます。
あとはtemplatesフォルダにdetail.htmlを作れば完成。
bootstrapを使っています。
<div class="container">
<div class="card">
<h5 class="card-header"> {{ object.category }}</h5>
<div class="card-body">
<div class="card-title" style="color: rgb(117, 188, 218); font-weight: bold;">{{ object.title }}</div>
<div class="card-title">{{ object.content }}</div>
<div class="card-title" style="font-size: small;">{{ object.postdate }}</div>
<a href="#" class="btn btn-primary">ボタン</a>
</div>
</div>
</div>
個別のデータはobjectという変数に入っているようです。その中からcategoryやcontentなどを指定することでそれぞれの項目が取得できるようです。
この記事が気に入ったらサポートをしてみませんか?