就我而言,我允许用户上传头像图片并使用 user_id 作为文件名,简单地说。所以就会有1.jpg、2.jpg等。
但是我发现,如果我为某个已上传头像的帐户(假设用户#10)上传新头像,新文件将被命名为“10_1.jpg”。这没关系,但是我不需要它,我希望新文件可以覆盖旧文件 - 无论如何它也节省了一些磁盘空间。
我用谷歌搜索并搜索但找不到任何线索。我希望有一个 ImageField 或 FileField 选项,但它不存在。
感谢帮助!
您应该定义自己的存储,从 FileSystemStorage 继承它,并重写其中的 get_available_name 函数。将此存储用于您的图像字段。
像这样的事情:
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)