はじめに
viewsの関数ベースに関しては@login_requiredでできるが、クラスベースに関してはやり方を知らなかったので、備忘録として残しておく。
やり方
LoginRequiredMixinを使う。
まずは以下のようにLoginRequiredMixinをimportする。
views.py
from django.contrib.auth.mixins import LoginRequiredMixin
使用するクラスの引数にLoginRequiredMixinを追加する。
views.py
class PostView(LoginRequiredMixin, View):
settings.pyにログインしていない場合のリダイレクト先を設定する。
settings.py
LOGIN_URL = '/accounts/login/'
おわりに
上記のようにすることで、以下のような動作が可能になる。
- ログインしている場合→呼ばれたクラスの関数を実行する。
- ログインしていない場合→LOGIN_URLで指定したURL先へリダイレクトする。