x1a*_*1a0 6 django filefield imagefield
在我的情况下,我允许用户上传头像图片并简单地使用user_id作为文件名.所以会有1.jpg,2.jpg等
但是我发现如果我为已经上传过的一个帐户上传了一个新的头像,让我们说用户#10,新文件将被命名为"10_1.jpg".这是可以的,但我不需要它,我希望新文件可以覆盖旧文件 - 它还可以节省一些磁盘空间.
我用Google搜索并搜索但无法找到线索.我希望ImageField或FileField有一个选项,但它不存在.
感谢帮助!
Mic*_*din 13
您应该定义自己的存储,从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)
Run Code Online (Sandbox Code Playgroud)