通常はLogin Requiredデコレータを使用しますが、URL が 1 つしかないため、request.user.is_authenticated() が True かどうかを確認できます。True の場合、ログインしているユーザーに対応するテンプレートを返します。それ以外の場合は、他のテンプレートを返します。
クラスベースのビュー
これを見てください: TemplateView でログインが必要です
ディスパッチ メソッドを使用して、クラス ベースのビューで認証されているユーザーをチェックしていました。
djangoインポートからhttp django.viewsインポートジェネリックから
class AboutView(generic.TemplateView):
""" About page view. """
template_name = 'about.html'
def dispatch(self, request, *args, **kwargs):
if not request.user.is_authenticated():
raise http.Http404
return super(AboutView, self).dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs):
ctx = super(AboutView, self).get_context_data(**kwargs)
ctx['something_else'] = None # add something to ctx
return ctx