[pyar] Método en Modelo Django
xavier lesa
xavierlesa en gmail.com
Lun Ago 8 17:43:58 ART 2011
Claro porque self lo manda el modelo sin preguntar, entonces si vos se lo
forsas en la llamada,
imagen = obtener_imagen_principal(self)
python acá entiende que hay un objeto self que tiene que meter en esa
función.
ponelo así:
imagen = obtener_imagen_principal()
Abrazo
Xavier Lesa
Production Manager
tel: +011 4823-7531 | cel: +011 15 3868-3918
web: http://link-b.com | mail: xavier en link-b.com | xavierlesa en gmail.com
gtalk: xavier en link-b.com | skype: xavierlesa
2011/8/8 matias benedetto <matias.benedetto en gmail.com>
>
> Sip, es lo mismo que hagas esto,
>>
>> class Producto(models.Model):
>>
>> @property
>> def imagen(self):
>>
>> try:
>> mm = Multimedia.objects.get(producto=self.id, principal=1)
>> except:
>> mm = Multimedia.objects.filter(producto=self.id)[0]
>>
>> return mm
>>
>> nombre = models.CharField(max_length=255)
>>
>
>
> Me sigue tirando el mismo error, no entiendo por qué. En el def
> __unicode__(self): funciona bien, porque en el otro metodo no?
> models.py", line 42, in Producto
> imagen = obtener_imagen_principal(self)
>
> NameError: name 'self' is not defined
>
> copio los dos modelos completo por si ayuda:
>
>
> class Producto(models.Model):
> def __unicode__(self):
> return str(self.id) + " | " + self.nombre
>
> @property
>
> def obtener_imagen_principal(self):
> try:
> return self.multimedia_set.get(principal=1)
>
> except Producto.DoesNotExit:
> return self.multimedia_set.all()[0] # cualquiera
>
> nombre = models.CharField(max_length=255)
> sku = models.CharField(max_length=50)
> descripccion = models.TextField(blank=True, null=True, default=None)
> peso = models.CharField(max_length=5)
> material = models.CharField(max_length=20)
> estado = models.CharField(max_length=2, default=1) #0 sin stock, 1
> stock normal, 2 poco stock
> visible = models.CharField(max_length=2, default=1) #0 no visible, 1
> visible
> categorias = models.ManyToManyField(Categoria)
> stock = models.CharField(max_length=10)
> fecha = models.DateTimeField(auto_now_add=True)
> modificado = models.DateTimeField(auto_now=True)
> visto = models.IntegerField(default=0)
>
> imagen = obtener_imagen_principal(self)
>
>
>
> class Multimedia (models.Model):
> def __unicode__(self):
> return str(self.id)+ " | " + " IdImg " + str(self.producto.id) + "
> | " + self.producto.nombre
>
> producto = models.ForeignKey(Producto)
> tipo = models.CharField(max_length=2, default=0)#0 imagen, 1 video
> urloriginal = models.CharField(max_length=255, null=True, blank=True)
> principal = models.BooleanField(default = False)
> alt = models.CharField(max_length=255, null=True, blank=True)
>
> imagen = ImageWithThumbsField(name="imagen",
> upload_to='imagenes_productos',
> sizes=((50,50),(100,100),(125,125),(230,230)))
>
>
> _______________________________________________
> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110808/92474839/attachment.html>
More information about the pyar
mailing list