【问题标题】:Django - Delete File After FileField DeleteDjango - 删除文件字段后删除文件
【发布时间】:2019-05-19 08:16:09
【问题描述】:

我有一个 Django 项目,我使用文件字段来上传文件。

我想要做的是删除链接到我试图删除的对象的文件字段的文件。

我以这个文档为例: https://djangosnippets.org/snippets/10638/

当我使用这些功能时,我在服务器上得到了 dollowing 错误: “错误 32 - 该进程无法访问该文件,因为它正被另一个进程使用” 我认为使用它的进程是 django 服务器,因为我尝试使用常规 python 脚本(相同的功能)和批处理删除它,它工作得很好。

有人知道解决这个问题的方法吗?

【问题讨论】:

    标签: python django


    【解决方案1】:

    您想在删除整个模型时删除文件(FileField、ImageField)?

    像这样试试。

    from django.db import models
    
    class MyModel(models.Model)
        ''' for example this is your model '''
        name = models.CharField(max_length=255)
        image = models.ImageField(upload_to='/test/var/')
    
    # this is your view
    mm = MyModel.objects.get(pk=111)
    # print(mm.image)
    mm.image.close() # add this line
    mm.image.delete() # this will delete file and not model
    

    【讨论】:

    • 不,我想删除对象链接到的文件**
    • 我更新了我的答案,检查一下。不要紧 。 FileField 是 ImageField 的超类。
    • 我得到同样的错误:错误 32 - 该进程无法访问该文件,因为它正在被另一个进程使用
    • 查看我的最新更新。也重启服务器。希望这能解决您的问题。
    • 我不知道为什么我很难找到这个答案,但我很高兴我找到了它!
    猜你喜欢
    • 2014-01-23
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多