✏️ Fix: [#64] 이미지, 파일 필드 업로드 경로 설정 함수 마이그레이션 되도록 설정
This commit is contained in:
@@ -1,18 +1,20 @@
|
|||||||
import os
|
import os
|
||||||
|
from django.utils.deconstruct import deconstructible
|
||||||
|
|
||||||
def dynamic_upload_to(prefix, field_name_func):
|
@deconstructible
|
||||||
def wrapper(instance, filename):
|
class DynamicUploadTo:
|
||||||
|
def __init__(self, prefix, field_name):
|
||||||
|
self.prefix = prefix
|
||||||
|
self.field_name = field_name
|
||||||
|
|
||||||
|
def __call__(self, instance, filename):
|
||||||
ext = filename.split('.')[-1]
|
ext = filename.split('.')[-1]
|
||||||
field_name = field_name_func(instance)
|
fname = self.field_name(instance) if callable(self.field_name) else self.field_name
|
||||||
|
if self.prefix == "user":
|
||||||
if prefix == 'user':
|
filename = f"{instance.nickname}-{fname}.{ext}"
|
||||||
filename = f'{instance.nickname}-{field_name}.{ext}'
|
|
||||||
else:
|
else:
|
||||||
filename = f'{instance.id}-{field_name}.{ext}'
|
filename = f"{instance.id}-{fname}.{ext}"
|
||||||
|
return os.path.join(self.prefix, filename)
|
||||||
return os.path.join(prefix, filename)
|
|
||||||
|
|
||||||
return wrapper
|
|
||||||
|
|
||||||
def file_delete(obj, field):
|
def file_delete(obj, field):
|
||||||
getattr(obj, field).delete(save=False)
|
getattr(obj, field).delete(save=False)
|
||||||
|
|||||||
Reference in New Issue
Block a user