def _save(self, instance=None): if not self.auto_rename: return if instance == None: return if not instance._get_pk_val(): # NEW OBJECT, connect to the post_save for renaming dispatcher.connect(self._save_new, signals.post_save, sender=instance) return image = getattr(instance, self.attname) if self.name_field: image = rename_by_field(image, '%s-%s-%s' \ % (instance.__class__.__name__, self.name, getattr(instance, self.name_field) ) ) else: # XXX this needs testing, maybe it can generate too long image names (max is 100) image = rename_by_field(image, '%s-%s-%s' \ % (instance.__class__.__name__, self.name, instance._get_pk_val() ) ) setattr(instance, self.attname, image)
def _save_new(self, instance): if not self.auto_rename: return try: image = getattr(instance, self.attname) if self.name_field: image = rename_by_field(image, '%s-%s-%s' \ % (instance.__class__.__name__, self.name, getattr(instance, self.name_field) ) ) else: # XXX this needs testing, maybe it can generate too long image names (max is 100) image = rename_by_field(image, '%s-%s-%s' \ % (instance.__class__.__name__, self.name, instance._get_pk_val() ) ) setattr(instance, self.attname, image) instance.save() finally: # cleanup dispatcher.disconnect(self._save_new, signals.post_save, sender=instance)
def _save(self, instance=None,**kwargs): if not self.auto_rename: return if instance == None: return img = getattr(instance, self.attname).url # XXX this needs testing, maybe it can generate too long image names (max is 100) img = rename_by_field(img, '%s-%s-%s' \ % (instance.__class__.__name__, self.name, instance._get_pk_val() ) ) setattr(instance, self.attname, img)
def _save(self, instance=None): if not self.auto_rename: return image = getattr(instance, self.attname) import md5, time m = md5.new() m.update(image) m.update(str(time.time())) theUID = m.hexdigest() # MODIFIED BY JUSTIN HEIDEMAN, TO GENERATE TOTALLY UNIQUE NAMES # XXX this needs testing, maybe it can generate too long image names (max is 100) image = rename_by_field(image, '%s-%s' \ % ( self.name, theUID ) ) print image setattr(instance, self.attname, image) print instance._get_pk_val()
def _pre_save(self, instance=None, **kw): # since this is called by the pre_save signal, the pk can be unset. self.needs_renaming= False if not self.auto_rename: return if instance == None: return image = getattr(instance, self.attname) if instance._get_pk_val() is None: if image == '': return else: # TODO: should have primary key at this point. return # XXX this needs testing, maybe it can generate too long image names (max is 100) image = rename_by_field(image, '%s-%s-%s' \ % (instance.__class__.__name__, self.name, instance._get_pk_val() ), mask_image=self.mask_file, logo_image=self.logo_file ) setattr(instance, self.attname, image)