def save(self, *args, **kwargs):
# if first save
if not self.id:
self.update_filetype()
# if a new file is uploaded, will update filename even if parent has also changed...
elif self.tracker.has_changed('file'):
old_s3_key = settings.MEDIAFILES_LOCATION + '/' + self.tracker.previous('file').name
s3_utils.delete_s3_object(old_s3_key)
# update filetype
self.update_filetype()
# but if file has not changed and parent has, must be handled manually
elif self.tracker.has_changed('parent_id'):
old_file_name = self.file.name
self.file.name = str(self.parent.id) + '/' + self.get_filename()
logging.info('Filename changed from {0} to {1}'.format(old_file_name, self.file.name))
media_dir = settings.MEDIAFILES_LOCATION
s3_utils.update_s3_key(media_dir + '/' + old_file_name, media_dir + '/' + self.file.name)
super(Asset, self).save(*args, **kwargs)
评论列表
文章目录