From d4926be0d53f47b75cd35b82dbb248e58b44ccee Mon Sep 17 00:00:00 2001 From: sm4640 Date: Tue, 20 May 2025 00:02:19 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Feat:=20[#58]=20=EB=8F=99=EC=A0=81?= =?UTF-8?q?=20=ED=8C=8C=EC=9D=BC=20=EA=B2=BD=EB=A1=9C=20=EC=84=A4=EC=A0=95?= =?UTF-8?q?=20=ED=95=A8=EC=88=98=20=EB=B0=8F=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=ED=95=A8=EC=88=98=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/utils/fileManager.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 common/utils/fileManager.py 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])