[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