gpt4 book ai didi

python - 使用 Django 1.9 时,当我删除模型对象时,如何让 Django 删除文件?

转载 作者:太空宇宙 更新时间:2023-11-03 16:36:49 25 4
gpt4 key购买 nike

当我删除模型时,我试图让 Django 版本 1.9 删除与模型中 FileField 对应的文件。我的第一次尝试是基于 delete signals as explained in another answer但这似乎从 Django 1.8 起不起作用。另一个答案给我指出了Django-cleanup的方向但它对我也不起作用(它可能在内部使用相同的方法吗?)。我也尝试过 post delete signal approach explained here但该方法从未触发。那么执行此操作的新方法是什么,任何在删除模型时删除文件的方法对我来说都很好。

最佳答案

我认为,我采用了以下解决方法:

@login_required
def deleteDataset(request, pk):
instance = DatasetModel.objects.defer('filecontent').get(pk=pk)
if request.method == 'POST':
path = instance.filecontent.path
instance.delete()
if os.path.isfile(path):
os.remove(path)

return redirect(main)
else:
return redirect(main)

但我仍然想找到更好的解决方案,因为我希望保持 View 尽可能短

关于python - 使用 Django 1.9 时,当我删除模型对象时,如何让 Django 删除文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37139515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com