[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