kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
28 wiersze
785 B
Python
28 wiersze
785 B
Python
import os
|
|
import shutil
|
|
|
|
from django.db import transaction
|
|
|
|
|
|
def rename_file(instance, field_name, new_name, allow_missing_file=False):
|
|
field = getattr(instance, field_name)
|
|
current_name, extension = os.path.splitext(field.name)
|
|
|
|
new_name_with_extension = '{}{}'.format(new_name, extension)
|
|
try:
|
|
shutil.move(field.path, new_name_with_extension)
|
|
except FileNotFoundError:
|
|
if not allow_missing_file:
|
|
raise
|
|
print('Skipped missing file', field.path)
|
|
initial_path = os.path.dirname(field.name)
|
|
field.name = os.path.join(initial_path, new_name_with_extension)
|
|
instance.save()
|
|
return new_name_with_extension
|
|
|
|
|
|
def on_commit(f, *args, **kwargs):
|
|
return transaction.on_commit(
|
|
lambda: f(*args, **kwargs)
|
|
)
|