djangoでリダイレクトの設定をするには、redirectメソッドを使うと便利です。
ここでは、redirectの使い方を具体例と共に紹介していきます。
※動画を使ってredirectの実装方法について説明しています。合わせて参考にして頂ければ幸いです。
1. 絶対パス
まずは絶対パスを入れる方法です。
コードdef redirectview(request):
return redirect('https://google.com')
これで、recirectviewメソッドが呼び出されるとgoogleのサイトにリダイレクトされます。
2. 相対パス
次は、相対パスを使う方法です。
コードdef redirectview(request):
return redirect('/some/url')
このように、相対パスにすることも可能です。
例えば、appprojectというプロジェクトフォルダの中のviews.pyファイルの中で上記の設定をすると、「localhost:8000/some/url」というurlにリダイレクトされます。
3. Viewの名前
次はviewの名前です。viewの名前とは、urlpatternsで設定したname='somename'という部分です。コードで確認しておきましょう。
コードurlpatterns = [
path('', 'views.redirectview', name='anotherpage')
]
この時、このようなコードでリダイレクト先を設定することができます。
コードdef redirectview(request):
return redirect('anotherpage')
4. viewの名前(引数付き)
次は、先ほどのviewに引数をつける場合です。
まずはurlpatternの設定からです。
コードurlpattens = [
path('/<int:pk>', views.redirectview, name='anothername')
]
この設定をベースに、views.pyファイルを設定していきましょう。
コードdef redirectview(request):
return redirect('anotherpage', {pk=10})
これで、localhost:8000/10というページにリダイレクトされます。
5. モデルのget_absolutte_urlを使う
最後はモデルのget_absolute_urlを使う場合です。
具体的なコードでみていきましょう。
コードdef redirectview(request):
obj = AppModel.objects.get()
return redirect(obj)
これで、モデルで定義しているget_absolute_urlメソッドが呼び出され、そこで指定されているurlにリダイレクトされます。
※動画を使ってredirectの実装方法について説明しています。合わせて参考にして頂ければ幸いです。