プログラミング学習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などを指定することでそれぞれの項目が取得できるようです。






この記事が気に入ったらサポートをしてみませんか?