2017-02-28 569 views
1

我使用Django 1.8.7具有以下應用安裝:Django的設置LOGOUT_REDIRECT_URL不起作用

INSTALLED_APPS = [ 
'django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'bootstrap3', 
'myapp', 
'storages', 
'rest_framework', 
'django_tables2',] 

我用的是內置django.contrib.auth.urls創建我的登錄頁面,密碼更改等 設置我LOGOUT_REDIRECT_URL在settings.py以一個「/ home」,正是像我一樣用LOGIN_REDIRECT_URL。通過頁面註銷用戶可以正常工作,但我仍然保留在註銷頁面之後。登錄時,這不是問題,登錄重定向的工作方式應該如此。

我urls.py的一部分:

url(r'^accounts/', include('django.contrib.auth.urls'), {'template_name': 'registration/login.html'}), 

我settings.py:

LOGIN_REDIRECT_URL = '/home' 
LOGOUT_REDIRECT_URL = '/home' 

預先感謝任何幫助或想法!

+0

這是沒有意義有'{「TEMPLATE_NAME」:「註冊/ login.html的」}'當你包括'django.contrib.auth.urls' - 將覆蓋模板名稱爲*所有* auth視圖,而不僅僅是登錄視圖。請注意,默認值是'registration/login.html'。 – Alasdair

回答

4

LOGOUT_REDIRECT_URL設置爲added in Django 1.10

在早期版本的Django上,您可以在logout視圖的網址格式中設置next_page

from django.conf import settings 
from django.conf.urls import url 
from django.contrib.auth import views 

url_patterns = [ 
    ... 
    url(r'^logout/$', views.logout, {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout'), 
    ... 
] 
+0

感謝您指出,我將切換到新版本。 – Nkls155

0

我認爲你在兩種情況下都重定向到同一個主頁。這兩種情況我的意思是登錄和註銷。你應該重定向LOGOUT_REDIRECT_URL ='/ login-page'(你應該將它重定向到登錄頁面)。