[pyar] Django.. agregar al QuerySet

Marcelo Martinovic marcelo.martinovic en gmail.com
Lun Ago 1 19:44:56 ART 2011


On 01/08/11 18:32, Ramiro Morales wrote:
> 2011/8/1 Marcelo Martinovic<marcelo.martinovic en gmail.com>:
>> Buenas lista.
>>
>> Estoy tratando de hacer lo siguiente...
>> Tengo una consulta que me trae
>>
>>         id,
>>         nombre,
>>         apellido,
>>         estado
>>
>> Ahora bien mi dilema es quiero una vez ejecutado el
>>
>>         algo = MiTabla.objects.all()
>>
>> poder recorrer el queryset "algo" y agregar a cada fila una nueva columna
>> llamada "imagen" y que según el valor de estado pueda meter un texto o un
>> nombre de imagen para que el template luego represente esto.
>
> Si lo querés solamente para poder enviarle información a la plantilla
> (o escrito de otra forma, una evz que llegue el momento de
> pasar información la para el rendering de la plantilla) podés convertir
> el queryset a una lista de diccionarios con el método [1]values() y
> después manejarte con esos diccionarios:
>
> class Modelo(models.Model):
>      nombre = models.CharField(...)
>
> qs = Modelo.objects.... # genera un queryset
>
> for dobj in qs.values():
>      dobj['mi_imagen'] = '/path/a/imagenes/imagen%05d. png' % dobj['d; ]
>
> ctx['objetos'] = dobj
> return render_to_respobnse('template.html', ctx)
>
> El problema de eso puede llegar a ser si el queryset es realmente grande ya
> que el uso de memoria de los distintas estructuras involucradas (el buffer del
> cliente de DB si lo hay, el queryset de Django y la lista de diccionarios
> resultante) es algo a lo que posiblemente tengas prestarle atención.
> Ahi puede llegar a ser de ayuda el método [2].iterator()
>
Ramiro..
Buen dato, tambien lo voy a probar a ver como va.
Gracias

-- 
-----------------------------------------
Marcelo Eduardo Martinovic
WEB & Applications Developer
Cel Phone: +54 911 57 80 08 69
Email:
	programacionlinux en fibertel.com.ar
	marcelo.martinovic en gmail.com

Debian User # 210
Linux User #191067

MSN Contact: programacionlinux en hotmail.com
Skype Contact: programacionlinux en hotmail.com
BlackBerry PIN: 224E6786



More information about the pyar mailing list