21 lines
559 B
Python
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])
|