Files
colio/common/utils/fileManager.py

21 lines
559 B
Python

import os
def dynamic_upload_to(prefix, field_name_func):
def wrapper(instance, filename):
ext = filename.split('.')[-1]
field_name = field_name_func(instance)
if prefix == 'user':
filename = f'{instance.nickname}-{field_name}.{ext}'
else:
filename = f'{instance.id}-{field_name}.{ext}'
return os.path.join(prefix, filename)
return wrapper
def file_delete(obj, field):
getattr(obj, field).delete(save=False)
setattr(obj, field, None)
obj.save(update_fields=[field])