[pyar] [django] parametro en decorador

Claudio Freire klaussfreire en gmail.com
Mie Sep 24 17:25:41 ART 2014


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


More information about the pyar mailing list