はじめに
nodejs などではpassport
を使ってミドルウェアでログイン確認をしていたが、Djangoではそれさえも簡単にできるということなので、少しながらまとめてみた。
環境
Django 3.1.13
python 3.9
Code
ログイン有無の確認
view.py
def show_aaa(request, aaa_id):
aaa = AAA.objects.get(pk=aaa_id)
if request.user.is_authenticated:
# Login: True , not Login: False
return render(request, 'show_aaa.html', {})
else:
return render(request, 'login.html', {})
ログイン状態ならTrue
ログイン状態でないならFalse
匿名ユーザーであることを確認
request.user.is_anonymous
# Login: False, not Login : True
匿名状態なら(ログイン状態でないはい)True
匿名状態でないなら(ログイン状態なら)False
Djangoのドキュメントによると、匿名による判断はあまり推奨しないそうです。is_authenticated
で判断ができてしまうので
参考