
Untitled
By: a guest on
May 8th, 2012 | syntax:
None | size: 1.96 KB | hits: 12 | expires: Never
class Image (KModel):
"""Clase que representa una imagen en base de datos"""
#: Descripción de la imagen
caption = models.CharField(default=None, max_length=150, null=True, blank=True)
#: Imagen
image = ImageWithThumbsField(upload_to='cat_imgs/', sizes=CATALOG_THUMB_SIZES)
#: Id del Usuario
user_id = models.IntegerField(null=True, blank=True)
#: Orden de la imagen
img_order = models.IntegerField(default=0, null=True)
@classmethod
def create(cls, context, image_dictionary):
"""
Crea una imagen nueva
:param image_dictionary: valores necesarios para la imagen
(puede ser el POST de la petición)
:type image_dictionary: Diccionario
:rtype: :class:`Image <catalog.models.Image>`
"""
image = Image()
return cls._save_image(context, image, image_dictionary)
@classmethod
def _save_image(cls, context, image, image_dictionary):
"""
Guarda los archivos de un objeto imagen
:param image_dictionary: valores necesarios para la imagen
:param image: objeto imagen donde se va a guardar el archivo
(puede ser el POST de la petición)
:type image_dictionary: Diccionario
:type image: Imagen
:rtype: :class:`Image <catalog.models.Image>`
"""
try:
dummy_name, ext = image_dictionary['file'].name.rsplit('.', 1)
except exceptions.ValueError:
ext = 'jpg'
try:
image.image.save(md5(str(datetime.now())).hexdigest()+'.'+ext, image_dictionary['file'])
except exceptions.IOError:
raise DataNotValid
image.user_id = image_dictionary.get("user_id", None)
image.img_order = image_dictionary.get("img_order", 0)
image.save()
return image