Estoy tratando de crear un sitio web simple con una funcionalidad de inicio de sesión muy similar a la aquí en SO. El usuario debería poder navegar por el sitio como un usuario anónimo y habrá un enlace de inicio de sesión en cada página. Al hacer clic en el enlace de inicio de sesión, el usuario será llevado al formulario de inicio de sesión. Después de un inicio de sesión exitoso, el usuario debe regresar a la página desde donde hizo clic en el enlace de inicio de sesión. Supongo que tengo que pasar de alguna manera la url de la página actual a la vista que maneja el formulario de inicio de sesión, pero realmente no puedo hacer que funcione.Django: redirige a la página anterior después de iniciar sesión
EDIT: Me di cuenta. Me conecté al formulario de inicio de sesión al pasar la página actual como un parámetro GET y luego utilicé 'next' para redireccionar a esa página. ¡Gracias!
EDIT 2: Mi explicación no parece estar claro por lo que conforme a lo solicitado aquí está mi código: digamos que estamos en un foo.html página y que no se ha identificado Ahora nos gustaría tener un enlace. en foo.html que enlaza con login.html. Allí podemos iniciar sesión y luego ser redirigidos a foo.html. El enlace en foo.html se ve así:
<a href='/login/?next={{ request.path }}'>Login</a>
Ahora me escribió una vista de inicio de sesión personalizada que se ve algo como esto:
def login_view(request):
redirect_to = request.REQUEST.get('next', '')
if request.method=='POST':
#create login form...
if valid login credentials have been entered:
return HttpResponseRedirect(redirect_to)
#...
return render_to_response('login.html', locals())
Y la línea importante en login.html:
<form method="post" action="./?next={{ redirect_to }}">
Así que sí, eso es todo, espero que lo aclare.
creo que el Las cosas de inicio de sesión de Django manejan eso para usted, ¿no le está funcionando? –