MawaLog

一日一日、楽しく生きる。技術と音楽が好き。

Djangoのlogin_reqiredを404errorじゃなくて他のページにリダイレクトする方法

目標

Djangoのlogin_requiredデコレーターはDjangoユーザーに高頻度で使われますね。 これをつけただけだと、404エラーを返してそんなページないよという表示になるだけです。 これを例えばログインページとか会員登録ページに飛ばすように設定する方法です。

復習

基本機能は、こんな感じ

例えば

#views.py
@login_required
def some_page():
   ・・・(操作)・・・

とすれば下記のview関数はログインしている会員には見せる。ログインしていない名無しには見せないで404エラーを返す。という設定になります。

飛ばす先を変える

飛ばす先を変える。例えばログインページのURLが http://・・・・/accounts/login/ だとしたら 例えば

#views.py
@login_required(login_url="/accounts/login/")
def some_page():
   ・・・(操作)・・・

と、記載するだけで飛ばす先が調整できます。お手軽・便利でDjangoサイコーですね!

参考・引用記事

stackoverflow.com