[pyar] [Django][Consulta] Redirigir si el usuario se encuentra logueado

Sebastián Seba ssebastianj en gmail.com
Mie Mayo 21 21:34:24 ART 2014


El 21 de mayo de 2014, 20:52, Martin Chikilian <slacklinucs en gmail.com>escribió:

> Hola!
>
> Se me ocurre:
>
> from django.contrib.auth.decorators import user_passes_test
>
> @user_passes_test(lambda user: not user.is_authenticated())
> def my_guests_only_view(request):
>     ...
>
> See
> https://docs.djangoproject.com/en/1.7/topics/auth/default/#django.contrib.auth.decorators.user_passes_test
>
>
> 2014-05-21 20:14 GMT-03:00 Sebastián Seba <ssebastianj en gmail.com>:
>
>> ¡Buenas lista! Recurro a su sabiduría para lo siguiente:
>>
>> Necesito "algo" que haga lo contrario al decorador @login_required de
>> Django, es decir, que al momento de realizar una request hacia una view
>> dada, si el usuario ya se encuentra logueado en el sistema, sea redirigido
>> a la vista desde la cual realizó la request.
>>
>> ¿Casos de uso? El primero es que si el usuario se dirige a la vista de
>> login y ya está logueado, no muestre el form de login y lo redirija. Los
>> otros casos son vistas que quiero que sean visualizadas sólo por usuarios
>> no logueados.
>>
>> ¿Cómo lo harían? ¿ya existe algo para eso? ¿cómo lo harían con un
>> decorador?
>>
>> ¡Saludetes!
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>

A) ¡Hola Mati! Acabo de probar lo que comentaste y lo que sucede es que se
produce un bucle infinito de redirecciones hacia la view de login.

Ejemplo:

1) Estoy en el home del sitio y hago click en "Iniciar sesión" y me
redirige hacia la view de Login.
2) Completo con los datos de acceso, los envío y me redirige hacia el home
nuevamente. (Hasta acá todo bien)
3) Estoy en el home y hago click (por poner un ejemplo) en "Ir a contacto".
Me redirige a la view de Contacto.
4) La view de Contacto debe ser accedida por usuarios no logueados pero en
este punto ya estoy logueado, por lo que me redirige nuevamente a la view
de Login.
5) Se produce un bucle de redirecciones hacia la view Login... Firefox llora

B) Viendo la documentación que me pasaste una opción hacky que podría
probar es usar el parámetro "login_url" del decorador @user_passes_test
para hacer la redirección.
Surge otra duda: ¿es correcto usar request.META.get('HTTP_REFERER')? Lo que
quiero es que lo reenvíe al usuario desde donde vino.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140521/b63afb13/attachment.html>


More information about the pyar mailing list