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

Cita:
Iniciado por razpeitia Ver Mensaje
Puedes poner algo mas concreto? no entiendo mas o menos por donde va la duda.
Estuve biendo como funcionanlos middlewares aqui [URL="http://www.juanjoconti.com.ar/2009/08/15/django-middleware/"]http://www.juanjoconti.com.ar/2009/08/15/django-middleware/[/URL]

Y pone:
Cita:
1) Fase Request (se llama a los métodos process_request() y process_view())
2) Fase Response (se llama a los métodos process_response() y process_exception())
Entonces para manejar la vista necesito ocuparme de process_view. Hasta ahi todo bien.

Cita:
process_view(self, request, view_func, view_args, view_kwargs)
Cita:
process_view() es llamado antes de que Django ejecute la vista. Debe retornar None o un objeto HttpResponse. Si retorna None, Django seguirá procesando el request, ejecutando otros process_view() y luego la vista apropiada. Si retorna un objeto HttpResponse, Django no hará nada más, solo retornar ese objeto.
Aqui ahora llega la cuestion, para no devolver un HttpResponse e impedir la ejecucion de otros middlewares, ¿es posible de alguna forma modificar view_func para que la ejecucion de losmiddlewares continue pero siendo otra la funcion usada como vista? Si se puede, ¿podria esto ocasionar algun problema a la ora de en las plantillas construir las URLs de os enlaces, etc?

Lo que quiero es, con un modelo desde el admin, poder definir entre una lista que yo tenga, que funcion debe ser la vista del index, y asi mostrar la que se corresponda para cada dominio como ya puedo serir varios dominios desde mi proyecto Django (el site_id un middleware lo cambia dinamicamente en la primera fase en un "process_request").

O si tienen otras ideas, comenten.
__________________
JHG