He configurado la configuración de redirección de inicio de sesión y cierre de sesión en la configuración de Django como se muestra a continuación:
LOGOUT_REDIRECT_URL = '/login/'
LOGIN_REDIRECT_URL = '/locations/'
Sin embargo, después de cerrar la sesión, la redirección se realiza en el parámetro next=, es decir, la URL se redirige a la misma página desde la que se hizo clic en Cerrar sesión.
Como referencia, aquí está la URL de inicio/cierre de sesión de mi urls.py:
url(r'^', include('rest_framework.urls', namespace='rest_framework')),
PD: estoy usando Django 1.11 y DRF 3.7.3
Solución del problema
La solución anterior no funcionó para mí con Django 2.1+
Después de mirar el código fuente de la función de cierre de sesión
from django.contrib.auth import logout
def logout_view(request):
logout(request)
# Redirect to a success page.
Terminé creando una vista de cierre de sesión personalizada que llama a la función de cierre de sesión y define una página de redirección
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))
Simplemente llame a esta vista en su urls.py en lugar de "cerrar sesión"
urlpatterns = [
path('accounts/logout/', views.logout_view),
]
Y ahora una redirección LOGOUT_URL en settings.py realmente funcionará
LOGOUT_URL = '/'
No hay comentarios.:
Publicar un comentario