【django】TemplateViewでデータベースを扱う方法 (get_context_data)

TemplateViewとはTemplateを表示させるためのdjangoのClass-based viewです

今回はそのTemplateViewで簡単にデータベースを扱う方法を解説していきます

TemplateVIewの基本的な使い方は下記記事を参考にしてください

目次

get_context_dataでモデルを呼び出す

TemplateViewのpython側からTemplateに変数を渡したい場合はこの関数で定義します

関数の書き方は下記のような感じです

class HomeTemplateView(TemplateView):
    template_name = 'blog/home.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        return context

TemplateViewでモデルの中身全部呼び出す

get_context_dataにモデルを呼び出してcontextに追加します

今回はBlogというモデルを呼び出しています

from .models import Blog

class HomeTemplateView(TemplateView):
    template_name = 'blog/home.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['blogs'] = Blog.objects.all()
        return context

context[]の中に文字列で指定します

このblogsという変数をテンプレートで使えるようになります

テンプレートでpython側の変数を受け取る

次はテンプレート側で変数を受け取りましょう

今回はblogsという変数です

<div>
    <h3 class="mb-3">ブログの記事一覧</h3>
    {% for blog in blogs %} #変数名はここに
        <h4>{{blog.title}}</h4>
        <p>{{blog.content}}</p>
    {% endfor %}
</div>

他にも変数をテンプレートに飛ばしたい場合は,モデルに限らずcontextを使えばできちゃいます

参照文献

お疲れ様でした

シェアしてくださると嬉しいです!
  • URLをコピーしました!

コメント

コメントする

目次