Как обновить значение поля FileField после перемещения файла в другую директорию django-storage amazon s3
Я делаю приложение блог, где пользователь может добавлять новые записи в него. Одним из критериев этих записей - неограниченная (условно) возможность выгружать файлы (т.е. за одной записью может закрепляться от 1 до 101 файла).
Все было прекрасно, пока я не добавил возможность редактировать записи. На данный момент для хранения файлов я использую amazon s3, где ручками создаю "файловую систему". Эта система строится на дате и названии записи. Отсюда и вытекает проблема: при изменении новости может меняться как дата, так и название
Я уже решил проблему с переносом файла из одной директории в другую; вот скрипт:
bucket = S3Boto3Storage()
from_path = bucket._normalize_name(bucket._clean_name(self.instance.file.name))
to_path = bucket._normalize_name(bucket._clean_name(self.cleaned_data['upload_path']))
result = bucket.connection.meta.client.copy_object(
Bucket=bucket.bucket_name,
CopySource=bucket.bucket_name + "/" + from_path,
Key=to_path)
bucket.delete(from_path)
Но проблема возникла с FileField вот этой модели:
class FileStorage(models.Model):
file = models.FileField(upload_to=uploadFile)
upload_path = models.TextField(blank=True, default='files/')
def __str__(self):
return f'Файл: {self.file.name.split("/")[-1]}'
Я просто не знаю, как мне сказать FileField, что его "перенесли" в другое место
Заранее спасибо за ответы. Прилагаю скрин проблемы.