Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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 如何从媒体文件夹中删除文件?_Python_Django_Django Views - Fatal编程技术网

Python 如何从媒体文件夹中删除文件?

Python 如何从媒体文件夹中删除文件?,python,django,django-views,Python,Django,Django Views,我有以下代码,用于删除文件夹中保存的所有文件和数据库表中的文件: def delete(request): folder = '../f2candon/andon/static/media/fileupload' for the_file in os.listdir(folder): file_path = os.path.join(folder, the_file) try: if os.path.isfile(file_

我有以下代码,用于删除文件夹中保存的所有文件和数据库表中的文件:

def delete(request):
    folder = '../f2candon/andon/static/media/fileupload'
    for the_file in os.listdir(folder):
        file_path = os.path.join(folder, the_file)
        try:
            if os.path.isfile(file_path):
                os.unlink(file_path)
        except Exception as e:
            print(e)
    delet = Media.objects.all()
    delet.delete()
    return HttpResponseRedirect('/mediafile/')
但我必须将另一个文件放置在仅删除一个文件的位置,无论该文件是否由id删除,要将其从数据库中删除,我会这样做:

def delete_media(request, id):
    delete_file = Media.objects.get(pk=id)
    delete_file.delete()
    return HttpResponseRedirect('/mediafile/')
是否有方法从数据库中刚刚删除的媒体文件夹中删除同一文件? 在数据库和文件夹中可以找到相同的文件

注意。

您可以编写一个for
post\u delete
,在删除数据库中的对象后处理:

@receiver(post_delete, sender=Media)
def delete_associated_files(sender, instance, **kwargs):
    """Removes the media file from disk after deletion."""
    if instance.file:  # assuming the field name is "file"
        instance.file.delete(save=False) 

您是否可以覆盖媒体对象的删除功能?