我已经在 Django 设置中配置了登录和注销重定向设置,如下所示 -
LOGOUT_REDIRECT_URL = '/login/'
LOGIN_REDIRECT_URL = '/locations/'
但是,在注销后,重定向是在 next= 参数上完成的,即 url 被重定向到单击注销的同一页面。
作为引用,这是我的 urls.py 中的登录/注销 URL -
url(r'^', include('rest_framework.urls', namespace='rest_framework')),
附言:我使用的是 Django 1.11 和 DRF 3.7.3
请您参考如下方法:
上述解决方案不适用于 Django 2.1+
查看注销功能源代码后
from django.contrib.auth import logout
def logout_view(request):
logout(request)
# Redirect to a success page.
我最终创建了一个调用注销函数并定义重定向页面的自定义注销 View
from django.contrib.auth import logout
from django.conf import settings
from django.shortcuts import redirect
def logout_view(request):
logout(request)
return redirect('%s?next=%s' % (settings.LOGOUT_URL, request.path))
只需在您的 urls.py 中调用此 View 而不是“注销”
urlpatterns = [
path('accounts/logout/', views.logout_view),
]
现在 settings.py 中的 LOGOUT_URL 重定向将真正起作用
LOGOUT_URL = '/'
