Foros del Web » Programando para Internet » Python »

Pierdo el valor de la variable misteriosamente (Django)

Estas en el tema de Pierdo el valor de la variable misteriosamente (Django) en el foro de Python en Foros del Web. Que tal, cuando me dispongo en el armado de un array para traer los emails que necesito hago lo siguiente: Código: avisos_afectados = Anuncio.objects.values_list('usuario_id',flat=True).filter(id__in=checks) emails ...
  #1 (permalink)  
Antiguo 09/08/2014, 14:01
 
Fecha de Ingreso: marzo-2007
Mensajes: 340
Antigüedad: 17 años, 8 meses
Puntos: 4
Pierdo el valor de la variable misteriosamente (Django)

Que tal, cuando me dispongo en el armado de un array para traer los emails que necesito hago lo siguiente:

Código:
 
        avisos_afectados = Anuncio.objects.values_list('usuario_id',flat=True).filter(id__in=checks)
        emails = User.objects.values_list('email', flat=True).filter(id__in=avisos_afectados)
Pero si de bajo de este codigo elimino los avisos afectados email pasa a estar vacio ...

Código:
Anuncio.objects.filter(id__in=checks).delete()
No lo entiendo, si tengo una asignacion anterior a la ultima linea, porque emails pierde su valor ??? Si no pongo la ultima linea todo funciona perfecto.

Gracias !
  #2 (permalink)  
Antiguo 09/08/2014, 21:10
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Pierdo el valor de la variable misteriosamente (Django)

Porque, los querysets en django son lazy-mente evaluados.

¿Que significa? Que son ejecutados, hasta que sea completamente necesario.

Ejemplo:
Código Python:
Ver original
  1. qs = MyModel.objects.filter(...) # Aqui no ejecuta nada
  2. # mas operaciones
  3. for obj in qs: # En la primera iteración es donde ejecuta el query antes no
  4.    pass
  #3 (permalink)  
Antiguo 10/08/2014, 12:51
 
Fecha de Ingreso: marzo-2007
Mensajes: 340
Antigüedad: 17 años, 8 meses
Puntos: 4
Respuesta: Pierdo el valor de la variable misteriosamente (Django)

Y como hago para indicar que ese queryset es fundamental ??? para no perder el valor de la variable "emails" ya que es enviada en una función mas tarde.

Muchas gracias.
  #4 (permalink)  
Antiguo 10/08/2014, 13:00
 
Fecha de Ingreso: marzo-2007
Mensajes: 340
Antigüedad: 17 años, 8 meses
Puntos: 4
Respuesta: Pierdo el valor de la variable misteriosamente (Django)

Por lo que veo no queda otra opción que iterar en mi caso :P

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:37.