Django ビューで使うショートカット関数まとめ


render()

テンプレート名とコンテキストを指定してビューを表示します。

return render(request, 'posts/book_list.html', {
    'books': Book.objects.all()
})


render_to_response()

こちらも同じくビューを表示するための関数です。この関数を使うとformで必要なCSRFトークンが生成されないため注意が必要です。

return render_to_response('posts/book_list.html', {
    'books': Book.objects.all()
})


redirect()

urls.pyで追加したURLに応じてパラメータを指定することで対応するビューにリダイレクトします。

return redirect('book_detail', pk=id)


get_object_or_404()

パラメータを指定してモデルが存在すればそれを返し、見つからなければ404エラーを送出します。

# Book.objects.get(pk=id)が存在するかどうかを確認
book = get_object_or_404(Book, pk=id)


get_list_or_404()

パラメータをもとにfilter()で絞り込み、要素があればそれを返し、空であれば404エラーを送出します。

# Book.objects.filter(published=True)に要素があるかを確認
books = get_list_or_404(Book, published=True)