gpt4 book ai didi

django - 当具有相同名称的文件已经存在时,如何防止Django更改文件名?

转载 作者:行者123 更新时间:2023-12-04 13:24:19 26 4
gpt4 key购买 nike

就我而言,我允许用户上传头像图片,并使用user_id作为文件名。因此将有1.jpg,2.jpg等。

但是我发现,如果我为已经上传了一个帐户的某个帐户上传一个新的头像,比如说用户#10,则新文件将被命名为“10_1.jpg”。可以,但是我不需要它,我希望新文件可以覆盖旧文件-仍然可以节省一些磁盘空间。

我用谷歌搜索,但找不到线索。我希望ImageField或FileField有一个选项,但它不存在。

感谢帮助!

最佳答案

您应该定义自己的存储,从FileSystemStorage继承它,并覆盖其中的get_available_name函数。使用此存储空间作为您的imagefield。
像这样的东西:

class OverwriteStorage(FileSystemStorage):

def get_available_name(self, name):
if self.exists(name):
os.remove(os.path.join(SOME_PATH, name))
return name

fs = OverwriteStorage(location=SOME_PATH)

class YourModel(models.Model):
image_file = models.ImageField(storage=fs)

关于django - 当具有相同名称的文件已经存在时,如何防止Django更改文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9214904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com