redirectの使い方【パラメータの使い方の具体例もあります】

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('/', 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の実装方法について説明しています。合わせて参考にして頂ければ幸いです。

→redirectに関する動画の説明を見る

~Django無料講義~のご案内

Code for Djangoが、4時間超の無料Django講義をはじめました
 
・本を出版したCode for Djangoの
 製作者が作ったサイトです。
 
・Code for Djangoの内容も、
 動画で詳しく解説しています。
 
・動画は順次ふやしていきますので、
 ただで学び続けることが可能です。
 
・Djangoの効率的なスキルアップに、
 是非お役立て下さい。

Created with