首页 > 解决方案 > .delete(False) 中的 false 参数是什么

问题描述

我从这里使用了一个例子

删除实例时删除未引用的文件。代码的一部分具有此功能:

""" Only delete the file if no other instances of that model are using it"""    
def delete_file_if_unused(model,instance,field,instance_file_field):
    dynamic_field = {}
    dynamic_field[field.name] = instance_file_field.name
    other_refs_exist = model.objects.filter(**dynamic_field).exclude(pk=instance.pk).exists()
    if not other_refs_exist:
        instance_file_field.delete(False)

.delete(False) 中的参数 False 是什么意思?

(我找不到它的参考)谢谢

标签: django

解决方案


此实现特定于代码引用的 FieldFile,它用于save参数。

Django 文档

FieldFile.delete(保存=真)

删除与此实例关联的文件并清除字段上的所有属性。注意:如果在调用 delete() 时文件恰好打开,此方法将关闭文件。

可选的 save 参数控制在删除与此字段关联的文件后是否保存模型实例。默认为真。

请注意,删除模型时,不会删除相关文件。如果您需要清理孤立文件,您需要自己处理(例如,使用可以手动运行的自定义管理命令或计划通过例如 cron 定期运行)。


推荐阅读