[pyar] [django] parametro en decorador

Mariano Mara mariano.mara en gmail.com
Mie Sep 24 17:38:03 ART 2014


El 24 de septiembre de 2014, 17:25, Claudio Freire <klaussfreire en gmail.com>
escribió:

> 2014-09-24 17:12 GMT-03:00 Daniel <dmlistapython en gmail.com>:
> >
> >
> > def sesion_inciada(funcion, redirecion="/"):
> >     def comprobar_sesion(*args, **kwargs):
> >            #aca necesito el request (1)
>
>
> Un decorador parametrizado sería:
>
> def sesion_iniciada(redirecion="/"):
>     def decor(funcion):
>         @functools.wraps(funcion)
>         def comprobar_sesion(*args, **kwargs):
>              #aca necesito el request (1)
>              return funcion(*args, **kwargs)
>         return comprobar_sesion
>     return decor
>
>
> Para usar
>
> @sesion_iniciada("/login")
> def blabla(request):
>    blabla
>
>
> Para usar el request, lo más legible sería:
>
> def sesion_iniciada(redirecion="/"):
>     def decor(funcion):
>         @functools.wraps(funcion)
>         def comprobar_sesion(request, *args, **kwargs):
>              # blabla request blabla
>              return funcion(request, *args, **kwargs)
>         return comprobar_sesion
>     return decor


 Aprovecho el thread para recomendar el puntilloso paquete wrapt[1] de
Graham Dumpleton.


[1] http://wrapt.readthedocs.org/en/latest/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140924/38cc14a9/attachment.html>


More information about the pyar mailing list