Django设置LOGOUT_REDIRECT_URL不起作用

Nkl*_*155 3 python django

我正在使用安装了以下应用程序的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',]
Run Code Online (Sandbox Code Playgroud)

我使用内置的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'}),
Run Code Online (Sandbox Code Playgroud)

我的settings.py:

LOGIN_REDIRECT_URL = '/home'
LOGOUT_REDIRECT_URL = '/home'
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助或想法!

小智 9

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

1)。在 settings.py 中设置 LOGOUT_REDIRECT_URL = '你想重定向到的 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'),
    ...,
]
Run Code Online (Sandbox Code Playgroud)


Ala*_*air 5

LOGOUT_REDIRECT_URL设置已添加到Django 1.10中

在早期版本的Django上,您可以next_pagelogout视图的URL模式中进行设置。

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'),
    ...
]
Run Code Online (Sandbox Code Playgroud)