django -使用default_storage.保存()覆盖文件

ppcbkaq5  于 2023-05-30  发布在  Go
关注(0)|答案(2)|浏览(215)

我正在使用django.core.files.storage.default_storage函数保存文件,但我没有看到一个选项,我会指定现有的文件必须被覆盖。我正在寻找一些最简单,最干净的解决方案,所以我必须写我自己的函数检查文件是否存在,如果它保存前删除它?

v1uwarro

v1uwarro1#

看看django-storages
它有一个覆盖存储后端,做什么你正在寻找。您只需要更新您的settings.py以使用OverwriteStorage类:

DEFAULT_FILE_STORAGE = 'storages.backends.overwrite.OverwriteStorage'
wn9m85ua

wn9m85ua2#

你可以删除文件然后保存,看看这个:

from django.core.files.storage import default_storage
from django.core.files.base import ContentFile

file = ContentFile("Some text", name="data.txt")
path = f"/path/to/{file.name}"

if default_storage.exists(path):
    default_storage.delete(path)
    
default_storage.save(path, file)

相关问题