【发布时间】:2015-02-14 02:34:59
【问题描述】:
我的目标是每次用户将文件上传到媒体文件夹时,之前的文件都会被删除并替换为当前文件。本质上,我一次只想要文件夹中的一个文件。我有一个工作示例,如果文件夹中的文件包含相同的名称,它会覆盖文件夹中的文件,并且我认为对其进行简单修改会产生解决方案,但我无法正确实施修改。
我必须覆盖重复的代码如下:
模型.py
class OverwriteStorage(FileSystemStorage):
def get_available_name(self, name):
if self.exists(name):
os.remove(os.path.join(settings.MEDIA_ROOT, name))
return name
class FileUpload(models.Model):
docFile = models.FileField(upload_to='Data_Files', storage=OverwriteStorage(), blank=True)
def __str__(self):
return self.docfile.name
@property
def filename(self):
return os.path.basename(self.docFile.name)
任何关于修改或其他潜在解决方案的想法将不胜感激。
【问题讨论】:
-
也许我的问题措辞不佳。我不需要每个文件都有一个唯一的名称,而是每次上传文件时都会删除以前在媒体文件夹中的文件。换句话说,该文件夹中的文件不应该超过 1 个,因为它应该总是被新上传的文件覆盖。
-
如果您对每个“记录”使用一个文件名(即使用记录 pk),则每次上传都会覆盖现有文件
-
我很难理解你的意思。你能举个例子吗?
标签: python django file-upload