[pyar] Método en Modelo Django

Ale peralta.alejandro en gmail.com
Lun Ago 8 17:15:43 ART 2011


El día 8 de agosto de 2011 17:07, matias benedetto
<matias.benedetto en gmail.com> escribió:
>>>Una sugerencia, sabes que podes hacer Producto.multimedia_set.all() ?
>>
>> >>Fijate acá:
>> >> https://docs.djangoproject.com/en/dev/topics/db/queries/#backwards-related-objects
>
>
> Si el set.all() lo conozco, pero hay varias imagenes que corresponden a un
> solo producto, por eso quiero traer junto al producto la que está marcada
> como principal=1 nada más. Me pareció que era una buena manera la de poner
> este metodo en el modelo.

Creo que no me entediste, Django te crea la relación inversa. Es decir
tenes una instancia de multimedia asociada con un producto, django
además te crea la asociación entre una instancia de producto y todas
las instancias de multimedia asocaidas a través de
multimedia_set.all().

Entonces podes hacer producto.multimedia_set.filter(principal=1) o
hasta multimedia_set.get(principal=1) en vez de de llamarlo como lo
haces.

No sé, me parece más conveniente de lo que estás haciendo.

def obtener_imagen_principal(self):
  try:
    self.multimedia_set.get(principal=1)
  except Producto.DoesNotExit:
     return self.multimedia_set.all()[0] # cualquiera

> Tambien se me ocurrio en el template recorrer todas las imagenes que me
> traia el _set.all y solo mostrar la principal, pero no me parecio un modo
> muy eficiente.
>
> Pero no se, hay una manera mejor?
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Ale.



More information about the pyar mailing list