我正在使用安装了以下应用程序的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'
提前感谢任何帮助或想法!
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'),
...
]
根据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'),
...,
]
我认为你在两种情况下都重定向到相同的主页。在这两种情况下我的意思是登录和注销。你应该重定向LOGOUT_REDIRECT_URL ='/ login-page'(你应该将它重定向到登录页面)。