Djangoで全てのページをログインしていないと見れないようにする

2024年6月23日

Djangoで全てのページをログインしていないと見れないようにするには、login_requiredデコレータを使います。これにより、指定したビューにアクセスする前にユーザーがログインしているかどうかが確認されます。もしログインしていない場合は、ログインページにリダイレクトされます。

以下は、login_requiredデコレータを使った例です:

python
from django.contrib.auth.decorators import login_required
from django.shortcuts import render

@login_required
def your_protected_view(request):
    # ビューの本来の処理をここに書く
    return render(request, 'protected_view.html')

上記の例では、your_protected_viewビューはlogin_requiredデコレータでデコレートされています。これにより、このビューにアクセスする際にユーザーがログインしていない場合は、デフォルトでLOGIN_URLで指定されたログインページにリダイレクトされます。必要に応じて、login_requiredデコレータのパラメータとしてカスタムのログインURLを指定することもできます。

これを全てのページに適用する場合、プロジェクトのurls.pyで全てのビューをlogin_requiredデコレータでデコレートすることもできます。

未分類

Posted by ぼっち