DjangoのDetailViewを使うとき、
from django.views.generic import DetailView
でインポートし、
class HogeDetailView(DetailView): model = Hoge def get_context_data(self, **kwargs): context = super(HogeDetailView, self).get_context_data(**kwargs) return context
・urls.py
from django.contrib.auth.decorators import login_required # 省略 url(r'^(?P<pk>\d+)$', login_required(HogeDetailView.as_view()), name='hoge_detail'),
な感じで、HogeDetailViewを使えるが、 テンプレートを、 templates/[models.pyのアプリ名のフォルダ名]/モデル名を全て小文字化_detail.html に置く、
templates/appname/hoge_detail
※もし名前が「HogeBar」モデルの場合は、アンダースコアなしの「hogebar.html」になるはず。
テンプレートの書き方がわからなかった。
django - DetailView template not displaying model data - Stack Overflow
を見たらobject.カラム名
一応呼ドキュメントにもある、
Generic display views | Django documentation | Django
<h1>{{ object.headline }}</h1> <p>{{ object.content }}</p> <p>Reporter: {{ object.reporter }}</p> <p>Published: {{ object.pub_date|date }}</p> <p>Date: {{ now|date }}</p>