入門クラス

【Django】DetailViewとは

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ですので、必須のクラスベースビューです。

-入門クラス
-,