[pyar] Método en Modelo Django
xavier lesa
xavierlesa en gmail.com
Lun Ago 8 17:45:42 ART 2011
jaja perdón la mala explicación que te dí, acá vas a encontrar mas info al
respecto http://docs.python.org/tutorial/classes.html
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 xavier lesa <xavierlesa en gmail.com>
> 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/2c9b9276/attachment.html>
More information about the pyar
mailing list