[pyar] Método en Modelo Django

matias benedetto matias.benedetto en gmail.com
Lun Ago 8 17:36:39 ART 2011


> 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)))
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110808/cb54b214/attachment.html>


More information about the pyar mailing list