万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    DjangoのDetailViewのテンプレート

    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>