Django设置LOGOUT_REDIRECT_URL不起作用

问题描述 投票:2回答:3

我正在使用安装了以下应用程序的Django 1.8.7:

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创建登录,密码更改等页面。我将settings.py中的LOGOUT_REDIRECT_URL设置为'/ 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'

提前感谢任何帮助或想法!

python django
3个回答
5
投票

LOGOUT_REDIRECT_URL设置是added in Django 1.10

在早期版本的Django中,您可以在next_page视图的URL模式中设置logout

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'),
    ...
]

2
投票

根据Django 2.1(2019),你可以做这样的事情

1)。在settings.py中设置LOGOUT_REDIRECT_URL ='您要重定向到的网址名称'

2)。在urls.py中

import settings
from django.contrib.auth import views as auth_views

urlpatterns = [
    ...,
    path('logout/', auth_views.LogoutView.as_view(next_page=settings.LOGOUT_REDIRECT_URL), name='logout'),
    ...,
]

0
投票

我认为你在两种情况下都重定向到相同的主页。在这两种情况下我的意思是登录和注销。你应该重定向LOGOUT_REDIRECT_URL ='/ login-page'(你应该将它重定向到登录页面)。

© www.soinside.com 2019 - 2024. All rights reserved.