[pyar] Puedo usar decoradores para esto?

Jesús Francisco jgomo3 en gmail.com
Jue Jun 10 18:19:22 ART 2010


El día 10 de junio de 2010 17:13, Jesús Francisco <jgomo3 en gmail.com> escribió:
> El día 10 de junio de 2010 16:55, Hystrix <ego en hystrix.com.ar> escribió:
>> Buenas gente, que tal?
>>
>> Estoy haciendo un app en Django y mirando las vistas que estaba por
>> escribir me di cuenta que estoy repitiendo una estructura para todas.
>> Sin saber mucho del tema me pregunto, podre usar un decorador para
>> eliminar la repeticion?
>>
>> Las vistas comparten esta estructura basica:
>>
>> def vista_a(request, id):
>>  data = {'area': 'i'}
>>  data['obj'] = get_object_or_404(modelo, pk=id)
>>  #cosas propias de la vista
>>  #usa cosas de data y agrega cosas a data
>>  #tambien usa cosas de request
>>  #aca se define el template
>>  return render_to_response(template, data)
>>
>
> Abstrayendome de Django... intuitivamente haría algo como:
>
> def data_decorator(vista):
>    def f(request, id):
>        data = {'area': 'i'}
>        data['obj'] = get_object_or_404(modelo, pk=id)
>        template = vista(request, data)
>        return render_to_response(template, data)
    # Aquí solo me faltó devolver la dunción f
    return f
>
> @def data_decorator(vista):
> def vista_a(request, data):
>    #cosas propias de la vista
>    #usa cosas de data y agrega cosas a data
>    #tambien usa cosas de request
>    #aca se define el template
>    return template
>
>
>>
>> Mi idea inicial era hacer un decorador que se ocupe de crear "data" y
>> despues devolver la respuesta http con render_to_response.
>> Pero no se como hacer para pasar los datos entre el decorador y la
>> funcion decorada.
>>
>> Tampoco quiero meterme en demasiadas complicaciones porque no se
>> justifica en este caso pero tal vez hay una forma simple y elegante de
>> evitar la repeticion en todas las vistas. Hay?
>>
>> --
>> Hystrix
>> _______________________________________________
>> 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/
>>
>



More information about the pyar mailing list