Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 8th, 2012  |  syntax: None  |  size: 1.96 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. class Image (KModel):
  2.     """Clase que representa una imagen en base de datos"""
  3.    
  4.     #: Descripción de la imagen
  5.     caption = models.CharField(default=None, max_length=150, null=True, blank=True)
  6.  
  7.     #: Imagen
  8.     image = ImageWithThumbsField(upload_to='cat_imgs/', sizes=CATALOG_THUMB_SIZES)
  9.    
  10.     #: Id del Usuario
  11.     user_id = models.IntegerField(null=True, blank=True)
  12.    
  13.     #: Orden de la imagen
  14.     img_order = models.IntegerField(default=0, null=True)
  15.    
  16.     @classmethod
  17.     def create(cls, context, image_dictionary):
  18.         """
  19.         Crea una imagen nueva
  20.        
  21.         :param image_dictionary: valores necesarios para la imagen
  22.         (puede ser el POST de la petición)
  23.         :type image_dictionary: Diccionario
  24.        
  25.         :rtype: :class:`Image <catalog.models.Image>`        
  26.         """
  27.         image = Image()
  28.        
  29.         return cls._save_image(context, image, image_dictionary)
  30.    
  31.     @classmethod
  32.     def _save_image(cls, context, image, image_dictionary):
  33.         """
  34.         Guarda los archivos de un objeto imagen
  35.        
  36.         :param image_dictionary: valores necesarios para la imagen
  37.         :param image: objeto imagen donde se va a guardar el archivo
  38.         (puede ser el POST de la petición)
  39.         :type image_dictionary: Diccionario
  40.         :type image: Imagen
  41.        
  42.         :rtype: :class:`Image <catalog.models.Image>`
  43.        
  44.         """
  45.         try:
  46.             dummy_name, ext = image_dictionary['file'].name.rsplit('.', 1)
  47.         except exceptions.ValueError:
  48.             ext = 'jpg'
  49.        
  50.         try:
  51.             image.image.save(md5(str(datetime.now())).hexdigest()+'.'+ext, image_dictionary['file'])
  52.         except exceptions.IOError:
  53.             raise DataNotValid
  54.        
  55.         image.user_id = image_dictionary.get("user_id", None)
  56.         image.img_order = image_dictionary.get("img_order", 0)
  57.         image.save()
  58.        
  59.         return image