RenderとRedirect
Djangoの勉強をしていて、Render
とRedirect
がこんがらがったので整理のためにまとめます。
Render
Renderの記述
まずはRenderの記述から見ていきます。
def hoge_view(request):
object_list = Model.objects.all()
return render(request, 'hoge/hoge.html', {'object_list' : object_list})
まず、renderはviewの中で使われています。引数は前から順に、リクエスト
、テンプレート
、データ
です。前2つは、前回記事を参照してください。
今回の記述において、データはモデル
の情報を使っています。モデルのすべてのオブジェクトを取得して、キーと値の組み合わせで利用しています。
Renderの動作イメージ
Renderの動作を理解した範囲で、説明します。Renderはデータを受け取って、テンプレートに適用して表示するという処理をしています。抽象的な説明をすると、「データを持ってきて、表示だけ新しくする」感じです。今あるページの上から、新しいページを上書きするというイメージです。
Redirect
Redirectの記述
こちらでもまず、Redirectの記述を見ていきます。
def hoge_view(request):
return redirect('hoge')
こちらもViewの中での記述です。引数になっている'hoge'
ですが、表記が違うだけでテンプレートです。遷移先のテンプレートを指定しています。
Redirectの動作イメージ
こちらも分かっている範囲で説明します。Redirectは他のページに遷移するという処理をしています。「そもそも違うページ」という感じです。
まとめ
Renderは「自分の見た目を変える」、Redirectは「違う人になる」という感じでした。ざっくり理解ですので、気になった人は適宜調べてください。