我正在写一个新闻博客,在那里你可以向新闻中添加任意多的文件。对于存储属性的文件,我使用了amazon s3和django-strorage。但是在我添加了新闻更新视图之后,我在文件管理方面遇到了一些问题。
如您所见,这里是我的文件模型
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?
这是我的文件移动脚本。
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)所有的工作都很好,但只有path。FileField存储旧路径中的文件。如何将其更新为?
屏幕有问题

发布于 2021-09-19 17:16:22
如果你想这样做,只需修改你的文件"name“参数,如下所示:
file.name = "new file path"https://stackoverflow.com/questions/68881811
复制相似问题