Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/10/2012, 16:39
Avatar de jhg
jhg
 
Fecha de Ingreso: marzo-2012
Mensajes: 96
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Modificacion de funcion a ejecutar para una url

Cita:
Iniciado por razpeitia Ver Mensaje
Ok hasta ahora no entiendo (en un panorama global) que tratas de hacer, probablemente construir un middleware no es la mejor opción.

Por lo poco que entendí, comprendí lo siguiente:
Quieres que cuando llamen a una vista (por ejemplo la pagina principal), quieres se muestre alguna otra vista? Estoy bien?
Si, xactamente,y por lo que entiendo eso se hace con un middleware (no conozco si Django tiene alguna otra cosa que me permita hacer esto mejor que un middleware). Con la opción del middleware y ponerlo el ultimo etc, llamo a la funcion que quiea y un httpresponse en vez de none y deberia funcionar, ok, todo perfecto hasta ahi. Ahora intento ir un paso más alla y mejorar esta idea planteando si seria posible la funcion que recibo en el metodo del midleware (que la recivo como un parametro, una variable que es la funcion), si en vez de ejecutarla y devulver un httpresponse podria modificar la variable de la funcion y que se ejecuten otros middlewares, ejecutando la funcion que yo quiera y he modificado al recibirla en mi middleware, o si esto no es posible y el cambio a la variable de la funcion solo endria efecto localmente en mi middleware.

EDITO:
Edito para intentar dejar lo mas claro posible el paso mas alla que intento dar:

- Django usara la funcion de vista vista1 y llama a mi middleware

Código Python:
Ver original
  1. mi_middleware(funcion):
  2.     # funcion = vista1
  3.     funcion = vista2 # o como quiera que sea para poder modificar que ejecute
  4.                               # el codigo de otra funcion y no de vista1
  5.     retur None

- continuan ejecutandose otros middlewares pero no usaran vista1 sino que ahora django usa vista2 por los cambios ue realice mi middleware

Si esto que quiero intentr no se puede pues mando un httpresponse pongo bien documentado en mayusculas ue sea el ultimo middleware si o si y listo, pero uisiera intentar hacer esto que explico de modificar la funcion, si es posible.
__________________
JHG

Última edición por jhg; 17/10/2012 a las 16:47 Razón: Mejorar explicacion