TemplateViewとはTemplateを表示させるためのdjangoのClass-based viewです
今回はそのTemplateViewで簡単にデータベースを扱う方法を解説していきます
TemplateVIewの基本的な使い方は下記記事を参考にしてください
【django】TemplateViewでHTMLを表示する方法
djangoでまずやるべきことは自分で作成したHTMLファイルを表示させることです djangoでは,TemplateViewを用いることで速攻かつ圧倒的に少ないコードでHTMLファイルの表…
目次
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を使えばできちゃいます
参照文献
Built-in class-based generic views | Django documentation
The web framework for perfectionists with deadlines.
お疲れ様でした
コメント