删除对象时从媒体中删除图像

Fan*_*e27 2 python django django-models django-forms django-views

当我从数据库中删除对象时,之前上传的图像仍保留在媒体目录中。我想自动删除它。

这是我的模型:

class Door(models.Model) :
    image = models.ImageField(upload_to=upload_location)
    color = models.ForeignKey(Color, on_delete=models.CASCADE)
    price = models.DecimalField(max_digits=10, decimal_places=2, default='119.99')
Run Code Online (Sandbox Code Playgroud)

这是我的删除视图:

def door_delete(request, door_id) :
    door = get_object_or_404(Door, id=door_id)
    door.delete()
    return redirect("/dashboard/doors")
Run Code Online (Sandbox Code Playgroud)

我尝试door.delete()在行前插入door.image.delete(),但据我所知还没有成功。

如果您知道答案,请帮助我。

JPG*_*JPG 5

如下所示,

def door_delete(request, door_id):
    door = get_object_or_404(Door, id=door_id)
    if door.image:
        door.image.delete()
    door.delete()
    return redirect("/dashboard/doors")
Run Code Online (Sandbox Code Playgroud) 参考:当我从数据库/模型中删除对象时,如何让 Django Admin 删除文件?