diff --git a/common/utils/fileManager.py b/common/utils/fileManager.py new file mode 100644 index 0000000..6a19d18 --- /dev/null +++ b/common/utils/fileManager.py @@ -0,0 +1,20 @@ +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])