Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Django 1.9删除模型对象时,如何让Django删除文件?_Python_Django_Django Models - Fatal编程技术网

Python 使用Django 1.9删除模型对象时,如何让Django删除文件?

Python 使用Django 1.9删除模型对象时,如何让Django删除文件?,python,django,django-models,Python,Django,Django Models,我试图让Django 1.9版在删除模型时删除与模型中的文件字段对应的文件。我的第一次尝试是基于的,但从Django 1.8及以后似乎不起作用。另一个答案为我指明了方向,但它对我也不起作用(可能是因为它在内部使用相同的方法吗?)。我也尝试过,但该方法从未触发。那么,新的方法是什么呢?任何在删除模型时删除文件的方法对我来说都是好的。在我看来,我采用了以下解决方法: @login_required def deleteDataset(request, pk): instance = Data

我试图让Django 1.9版在删除模型时删除与模型中的文件字段对应的文件。我的第一次尝试是基于的,但从Django 1.8及以后似乎不起作用。另一个答案为我指明了方向,但它对我也不起作用(可能是因为它在内部使用相同的方法吗?)。我也尝试过,但该方法从未触发。那么,新的方法是什么呢?任何在删除模型时删除文件的方法对我来说都是好的。

在我看来,我采用了以下解决方法:

@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)

但是我还是想找到一个更好的解决方案,因为我更愿意让观点尽可能简短

你的问题太宽泛了,但看看这个答案是否有用