[Django] ログイン必須のページを作る

前回、ログイン機能を実装してみましたが、今度はログインした人専用(ログイン必須)のページを作ってみましょう。

関数ベースのビューの場合

関数ベースのビューを利用するなら以下のようにするだけでログインしていない場合は自動的にログインページにリダイレクトされるようになります。

from django.contrib.auth.decorators import login_required

@login_required
def loggedInView(request):
  return render(request,"template/template.html")

ログインした人だけが閲覧できるページにデコレーターを利用して関数の前に@login_requiredをつけるだけです。

クラスベースのビューの場合

クラスベースのビューを利用する場合では以下のようになります。

from django.contrib.auth.mixins import LoginRequiredMixin

class LoggedInView(TemplateView,LoginRequiredMixin):
    template_name = "template/template.html"

こちらもそう面倒ではないですね。
LoginRequiredMixinを継承させればOKです。