Djangoでログアウトすると、管理サイトに遷移してしまうよ

2024年6月23日

Djangoのデフォルトのログアウトビューは、ログアウト後にデフォルトで/accounts/logout/にリダイレクトします。これを変更するには、LOGOUT_REDIRECT_URLを設定するか、新しいビューを作成してカスタマイズします。

方法1: LOGOUT_REDIRECT_URLを設定する

settings.pyファイルでLOGOUT_REDIRECT_URLを設定して、ログアウト後のリダイレクト先を指定します。

python
# settings.py

LOGOUT_REDIRECT_URL = '/your-custom-logout-redirect-url/'

方法2: カスタムビューを作成する

自分でカスタムビューを作成してログアウト後のリダイレクト先を制御することもできます。以下はその例です。

  1. views.pyで新しいログアウトビューを作成します。
python
# views.py

from django.contrib.auth.views import LogoutView
from django.shortcuts import redirect

class CustomLogoutView(LogoutView):
    def get_next_page(self):
        # ここでログアウト後のリダイレクト先を指定
        return '/your-custom-logout-redirect-url/'
  1. urls.pyで新しいログアウトビューを使用するように設定します。
python
# urls.py

from django.urls import path
from .views import CustomLogoutView

urlpatterns = [
    # 他のURLパターン
    path('logout/', CustomLogoutView.as_view(), name='logout'),
    # 他のURLパターン
]

どちらの方法でも、'/your-custom-logout-redirect-url/'の部分にログアウト後にリダイレクトさせたいURLを指定してください。

未分類

Posted by ぼっち