Djangoには、単一のデータを表示するView、DetailView
というMixinがあります。
この記事では、 DetailView
について解説します。
それはなにか
DetailView
は文字通り詳細ページなどレコードひとつだけを取得して表示するためのViewです。
モデルと連携して、連携されたモデルからレコードを自動的にひとつだけ取得します。
もちろん、get_context_data
メソッドも使用できます。
どんないいことがあるのか
データを自動的に取得できます。
取得するデータはurls.py
に設定されたpath
関数に依存します。
使い方
モデルはこんな感じだと思ってください。
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
実際の使用はこんな感じです。
とてもシンプルですね。
from django.views.generic import DetailView
from .models import Article
class ArticleDetailView(DetailView):
model = Article
テンプレートでは、自動で生成される変数object
を使用します。
テンプレート名は(モデル名)_detail.html
です。
<h1>{{ object.title }}</h1>
<p>{{ object.content }}</p>
注意点
特にありません。
まとめ
詳細を表示するのViewですので、必須のクラスベースビューです。