我已经做了一些事情来覆盖已经上传的文件:
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 Work (models.Model):
file = models.FileField(storage=OverwriteStorage(), upload_to=path)
group = models.ForeignKey(Group, related_name='work_list')
新的上传会进行新的输入,所以我有:
没有文件的模型(当我询问file.size时的错误..)
我的新模特
删除文件后,如何删除模型?
我试图再次更改FileSystemStorage进程,但我不能使用任何参数(在doc中说并经过几个小时的测试;)),我也试图改变保存过程,但我没有成功..
答案 0 :(得分:0)
在继续进行问题排查之前要检查的一些事项:
答案 1 :(得分:0)
我的解决方案:
for work in groupwork : #It is the list of work associate with my group
try :
path = work.file.path.lstrip(SITE_ROOT+'/'+MEDIA_ROOT+'/').rstrip(request.FILES['file'].name)
deletedwork = groupwork.get(file=path+request.FILES['file'].name)
deletedwork.delete()
except:
pass