1. 程式人生 > 其它 >django 使用者登出時重定向到管理頁面的解決方法

django 使用者登出時重定向到管理頁面的解決方法

django 使用者登出時重定向到管理頁面的解決方法:確保INSTALLED_APPS中應用順序配置正確,確保登出模板名稱正確。

使用者登入和登出

使用django自帶的認證系統django.contrib.auth時,預設的認證檢視會在templates下的registration資料夾中查詢模板,

其中登入模板為login.html,登出模板為logged_out.html

出現問題:

兩模板繼承自同一base.html,登入繼承有效,但登出頁面重定向到了Django管理頁面。

登入頁面:

登出頁面:

解決方法

https://stackoverflow.com/questions/15467831/django-logout-redirects-me-to-administration-page

嘗試了其中一種方法:

  1. Make sure your app comes before django.contrib.admin
    under installed apps in settings.py.

建立應用配置settings.py中的INSTALLED_APPS時,應用名如users應該放在django.contrib.admin應用之前。

# mysite/settings.py
INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'learning_logs',
    'users',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
  1. Make sure your template is called logged_out.html.

登出頁面的模板名稱為logged_out.html

修改後效果