Página principal de Grupos de Google
Ayuda | Acceder
Llamar a una vista desde otra
En este grupo hay demasiados temas que deben mostrarse primero. Para que este aparezca al principio de la lista, debes descartar esta opción para alguno de los anteriores.
Error al procesar tu solicitud. Por favor, inténtalo de nuevo.
marcar
  13 mensajes - Ocultar todos
El grupo al cual envías entradas es un grupo Usenet. Si envías mensajes a este grupo, cualquier usuario de Internet podrá ver tu dirección de correo electrónico
Tu respuesta no se ha enviado.
Tu entrada se ha publicado correctamente.
b3ni  
Ver perfil
 Más opciones 30 sep, 07:30
De: b3ni <camont...@gmail.com>
Fecha: Tue, 30 Sep 2008 13:30:11 +0200
Local: Mart 30 sep 2008 07:30
Asunto: Llamar a una vista desde otra

Hola,
me gustaría llamar a una vista desde otra vista. ¿es posible?

Esta vista es:

@login_required
def view_sw(request):
    peticion = request.GET.get('peticion', '0')

    [...]

    origen = int(request.GET.get('origen', '0'))
    destino = int(request.GET.get('destino', '0'))

    return DATA

Como se observa dentro espera que se le pasen paramentros GET.
¿Es posible llamarla de otra vista? o tengo que sacar la funcionalidad para
que sea llamada desde ambas (esto no me mola.)

Saludos y gracias.

--
Benito Rodríguez Arcos


    Responder al autor    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
Jose Jiménez López  
Ver perfil
 Más opciones 30 sep, 10:41
De: "Jose Jiménez López" <jjimenezlo...@gmail.com>
Fecha: Tue, 30 Sep 2008 16:41:38 +0200
Local: Mart 30 sep 2008 10:41
Asunto: Re: [Django-es] Llamar a una vista desde otra

Hola,

te podrías explicar un poco mejor? no entiendo del todo lo que quieres
hacer...
Si que se puede llamar a otra vista de varias formas, puedes hacer un return
HttpRedirect('/otra/url/')
O también puedes hacer un return otra_vista()

Pero no sé si es eso lo que estás buscando...

El 30 de septiembre de 2008 13:30, b3ni <camont...@gmail.com> escribió:

--
Jose Jiménez López
jjimenezlo...@gmail.com
www.josejimenez.net

    Responder al autor    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
Jose Jiménez López  
Ver perfil
 Más opciones 30 sep, 10:43
De: "Jose Jiménez López" <jjimenezlo...@gmail.com>
Fecha: Tue, 30 Sep 2008 16:43:39 +0200
Local: Mart 30 sep 2008 10:43
Asunto: Re: [Django-es] Llamar a una vista desde otra

perdón, es HttpResponseRedirect() no HttpRedirect()

Lo puedes ver en la documentación de django:
http://www.djangoproject.com/documentation/0.95/request_response/

El 30 de septiembre de 2008 16:41, Jose Jiménez López <
jjimenezlo...@gmail.com> escribió:

--
Jose Jiménez López
jjimenezlo...@gmail.com
www.josejimenez.net

    Responder al autor    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
b3ni  
Ver perfil
 Más opciones 30 sep, 10:49
De: b3ni <camont...@gmail.com>
Fecha: Tue, 30 Sep 2008 16:49:23 +0200
Local: Mart 30 sep 2008 10:49
Asunto: Re: [Django-es] Re: Llamar a una vista desde otra

2008/9/30 Jose Jiménez López <jjimenezlo...@gmail.com>

> Hola,

> te podrías explicar un poco mejor? no entiendo del todo lo que quieres
> hacer...
> Si que se puede llamar a otra vista de varias formas, puedes hacer un
> return HttpRedirect('/otra/url/')
> O también puedes hacer un return otra_vista()

> --
> Jose Jiménez López
> jjimenezlo...@gmail.com
> www.josejimenez.net

Lo siento, lo explico.

Tengo la vista como he dicho:

@login_required
def view_sw(request):
    peticion = request.GET.get('peticion', '0')

    return AjaxResponse(datos)

Donde hallas response es un objetillo del tipo:

AjaxResponse(HttpResponse):

Esta vista la utiliza para recibir peticiones ajax en función del campo
peticion, hacer una u otra cosa. Y por supuesto devolver un objeto
AjaxResponse.

Ahora en otra vista clásica que estoy desarrollando tengo que realizar el
mismo cálculo que hace la vista anterior. De ahí mi pregunta si podía
reutilizarla en el código de alguna forma parecida a esto:

def view_clasica(request):
    ajax = view_sw(otro_request)

    print ajax.data

Por eso estaba viendo el objeto request si puedo crear alguno o añadirle
propiedades para realizar esto.

No se, si me estoy liando.

¿algún comentario?

--
Benito Rodríguez Arcos


    Responder al autor    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
Esau Rodriguez  
Ver perfil
 Más opciones 30 sep, 15:11
De: "Esau Rodriguez" <esa...@gmail.com>
Fecha: Tue, 30 Sep 2008 20:11:10 +0100
Local: Mart 30 sep 2008 15:11
Asunto: Re: [Django-es] Re: Llamar a una vista desde otra
Si puedes. Tienes que pasar el request como parámetro y listo. Esto
está publicado en muchos sitios en Internet; en otros sitios te
hubieran puesto un RTFM y se hubieran quedado tan panchos.

2008/9/30 b3ni <camont...@gmail.com>:

--
Esaú Rodríguez
esa...@gmail.com

    Responder al autor    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
b3ni  
Ver perfil
 Más opciones 30 sep, 15:15
De: b3ni <camont...@gmail.com>
Fecha: Tue, 30 Sep 2008 21:15:40 +0200
Local: Mart 30 sep 2008 15:15
Asunto: Re: [Django-es] Re: Llamar a una vista desde otra

2008/9/30 Esau Rodriguez <esa...@gmail.com>

> Si puedes. Tienes que pasar el request como parámetro y listo.

Pero ¿pasar el mismo request de la vista padre? o ¿crear uno nuevo?. Supongo
que será este caso añadiendo al GET las variables que necesite.

> Esto
> está publicado en muchos sitios en Internet; en otros sitios te
> hubieran puesto un RTFM y se hubieran quedado tan panchos.

Que es un RTFM?

> --
> Esaú Rodríguez
> esa...@gmail.com

Muchas gracias.

--
Benito Rodríguez Arcos


    Responder al autor    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
Jose Caballero  
Ver perfil
 Más opciones 30 sep, 15:18
De: "Jose Caballero" <jcaballero....@gmail.com>
Fecha: Tue, 30 Sep 2008 15:18:05 -0400
Local: Mart 30 sep 2008 15:18
Asunto: Re: [Django-es] Re: Llamar a una vista desde otra

'Read The F**** Manual'
También existe el STFG, 'Search The F*** Google'

Ambos vienen a ser lo mismo "busca un poquito por tu cuenta antes de
preguntar"


    Responder al autor    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
b3ni  
Ver perfil
 Más opciones 30 sep, 16:39
De: b3ni <camont...@gmail.com>
Fecha: Tue, 30 Sep 2008 22:39:57 +0200
Local: Mart 30 sep 2008 16:39
Asunto: Re: [Django-es] Re: Llamar a una vista desde otra

2008/9/30 Jose Caballero <jcaballero....@gmail.com>

> 'Read The F**** Manual'
> También existe el STFG, 'Search The F*** Google'

> Ambos vienen a ser lo mismo "busca un poquito por tu cuenta antes de
> preguntar"

No consideraba que fuera una pregunta tan sencilla o fácil de encontrar.
Sinceramente no he búscado.

Gracias de todos modos.

--
Benito Rodríguez Arcos


    Responder al autor    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
Facundo Casco  
Ver perfil
 Más opciones 30 sep, 16:50
De: "Facundo Casco" <fca...@gmail.com>
Fecha: Tue, 30 Sep 2008 17:50:16 -0300
Local: Mart 30 sep 2008 16:50
Asunto: Re: [Django-es] Llamar a una vista desde otra
2008/9/30 b3ni <camont...@gmail.com>:
> Hola,
> me gustaría llamar a una vista desde otra vista. ¿es posible?

Si, es posible sin problemas. Una vista no es más que una funcion
Python que recibe un objeto tipo request y devuelve un HttpResponse o
un error. Mientras le pases a la vista que estas llamando el request
necesario y despues trabajes con el HttpResponse que te devuelve podes
hacer lo que quieras.
Basicamente

def vista_hija(request, par1=None):
   #procesa el request
   return render_to_response(template, data)

def vista_padre(request):
   #procesa el request si es necesario
   respuesta = vista_hija(request, 'algo')
   #procesa la respuesta si es necesario
   return respuesta

Como ves tambien podes agregarle parametros a la vista_hija cuando la
llamas desde la vista_padre. Lo unico que tenes que tener en cuenta es
que la vista_padre devuelva un HttpResponse.


    Responder al autor    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
Jose Caballero  
Ver perfil
 Más opciones 30 sep, 18:59
De: "Jose Caballero" <jcaballero....@gmail.com>
Fecha: Tue, 30 Sep 2008 18:59:22 -0400
Local: Mart 30 sep 2008 18:59
Asunto: Re: [Django-es] Re: Llamar a una vista desde otra

Bueno. Por suerte (o por desgracia, cada uno tiene su opinión) esta lista es
más amigable, y no se suelen dar ese tipo de respuestas.
En los foros en inglés suelen ser más agresivos y es la respuesta más común.

El 30 de septiembre de 2008 16:39, b3ni <camont...@gmail.com> escribió:


    Responder al autor    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
Esau Rodriguez  
Ver perfil
 Más opciones 8 oct, 09:59
De: "Esau Rodriguez" <esa...@gmail.com>
Fecha: Wed, 8 Oct 2008 14:59:15 +0100
Local: Mié 8 oct 2008 09:59
Asunto: Re: [Django-es] Re: Llamar a una vista desde otra
2008/9/30 Jose Caballero <jcaballero....@gmail.com>:

> Bueno. Por suerte (o por desgracia, cada uno tiene su opinión) esta lista es
> más amigable, y no se suelen dar ese tipo de respuestas.
> En los foros en inglés suelen ser más agresivos y es la respuesta más común.

Cierto pero que conste que respondí. Personalmente no estoy en contra
de que esta lista sea amigable; pero creo que no debería ser la
primera opción de consulta. A veces tengo la sensación de que muchos
preguntan aquí sin haber siquiera buscado en Google, y debería ser al
revés. Preguntar todo lo que no encuentres en Google en una búsqueda
sencilla (tampoco se trata de que revises uno por uno todos los
resultados de Google).

Esto me cogió en un mal día, no pretendía ser rudo.

--
Esaú Rodríguez
esa...@gmail.com

    Responder    Responder al autor    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
b3ni  
Ver perfil
 Más opciones 8 oct, 11:13
De: b3ni <camont...@gmail.com>
Fecha: Wed, 8 Oct 2008 17:13:19 +0200
Local: Mié 8 oct 2008 11:13
Asunto: Re: [Django-es] Re: Llamar a una vista desde otra

2008/10/8 Esau Rodriguez <esa...@gmail.com>

A mi no me molestó. Por el lado bueno, así supe lo que es un RTFM.

Retomando un poco el tema, al final no puede reutilizar una vista como yo
quería. A modo de recordatorio y poniendo la solución que me daba Facundo.

def vista_hija(request, par1=None):
  #procesa el request
  return render_to_response(template, data)

def vista_padre(request):
  #procesa el request si es necesario