django删除文章时同时删除OSS附件
今天需要实现删除内容时删除相关附件。
首先模型中定义文件字段
class Audio(Media): file = models.FileField(upload_to=get_audio_path,null=True,blank=True) preview_file = models.CharField(max_length=100,null=True,blank=True)
我的default_storage就是用OSS,如果有多个文件系统,根据自己实际情况修改
一下是删除时同时删除文件的代码
@receiver(pre_delete, sender=Audio) def delete_file(sender, instance, **kwargs): default_storage.delete(instance.file.name) default_storage.delete(instance.preview_file)
注意模型字段,file字段是FileField,返回文件对象,OSS中的key名为instance.file.name
preview_file为文本字段,保存OSS的key名,可以直接删除
https://maoface.com 欢迎参观

浙公网安备 33010602011771号