DjangoGirlsに挑戦 ~クエリセット2~
クエリセット2
今回はビュー側での操作です。
クエリセット
models(Post)→view→template
と値を渡していきます
モデルは作り終えてるのでこれをどうやってviewで扱うのかをやっていきます。
from django.shortcuts import render from .models import Post //1 def post_list(request): posts = Post.objects.all().order_by('published_date') //2 return render(request, 'blog/post_list.html', {'posts': posts}) //3
1.
同ディレクトリ内のmodels.pyからPostをimportしています。
これでPostの操作ができるようになります。
2.
Djangogirlsとは変えていますが、とりあえず全データを取得して並べ替えしたものを変数postsに入れているだけです
3.
Postモデルのオブジェクトはpostsに入っていますが、
これをtemplateで扱うにはrenderの引数{}の中に入れてあげればよいのです。
{template側で使う際の命名 : 値}
これでビュー側は終わりです。
{}内は複数の値を渡すことができるので、取得したオブジェクトを変数にいれてその変数を{}内に名前と一緒にいれれば
あとは好きな要素を好きなようにtemplate側に渡すことができます。
あと個人的に複数書くような場合は
render(request, 'blog/post_list.html', { 'posts': posts, 'yuriko': yuriko })
みたいな形で改行していった方が見やすくて好みです。