Yaji_S’s diary

プログラミング学習のアウトプットブログ

【Django】テンプレートでのモデルの値の取得

Djangoで汎用ビュー(ListView 、DetailViewなど)を用いた場合は簡単にモデルの値をテンプレに使用できますが、今回は汎用ビューを使用しない場合でのモデルの値を取得する方法を投稿します。

今回はブログ投稿サイトで自分の投稿した管理ページの実装を想定し、ブログの情報(title,post__date)を取得するといった内容です。

app名/views.py
 
class MyPostBlogView(UserPassesTestMixin, LoginRequiredMixin):
def get_myblog(request, user_id):
  user = request.user
myblogs = PostBlog.objects.filter(user_id=user.id) #自分の投稿内容だけ取得
context = {
'user': user,
'myblogs':myblogs
}
return render(request, 'blog/mypage.html', context)

 

取得した値のテンプレートファイル部分
  
<div class="post-list">
<h1>{{ user.username }}さんの投稿一覧</h1>
{% for blog in myblogs %}
<div class="post_content">
<h2>投稿タイトル:{{ blog.title }}</a></h2>
<p>投稿日:{{ blog.post_date }}</p>
</div>
{% endfor %}
</div>

 

汎用ビューは便利ですが、複数のモデルの取得をする実装なんかには使うのが難しい(自分の力量不足かもしれません)ので、色々な方法の実装を身に付けて、選択肢を増やしておくことが必要だと感じました。