0

我做了一些东西来覆盖已经上传的文件:

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 过程,但我不能使用任何参数(在文档中说并测试了几个小时;)),我也尝试更改保存过程,但我没有成功..

4

2 回答 2

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
于 2012-08-01T12:03:40.617 回答
0

在继续进行故障排除之前需要检查的几件事:

  • 您是否在 settings.py 文件中设置了 MEDIA_ROOT 和 MEDIA_URL?
  • 检查此链接以获取有关管理文件的更多信息
  • 我会利用 Django 的内置文件存储,而不是从头开始构建一些东西
于 2012-07-31T17:15:53.523 回答