0

我在我的 Django-App 中定义了以下模型

def directory_path(instance, filename):
    return 'attachments/{0}_{1}/{2}'.format(instance.date, instance.title, filename)

class Note(models.Model):
    title = models.CharField(max_length=200)
    date = models.DateField(default=datetime.date.today)
    # File will be saved to MEDIA_ROOT/attachments
    attachment = models.FileField(upload_to=directory_path)

    def __str__(self):
        return self.title

我成功设置了 AWS S3/Digitalocean Spaces 来存储通过附件字段上传的媒体文件。但是,当我删除模型的一个实例时,该文件仍保留在我的存储桶中。如果相应的模型实例被删除,我该怎么做才能自动删除我的 s3 存储桶中的文件?

4

1 回答 1

0

好的,所以最简单的方法似乎是使用 third-party-package django-cleanup,有关详细信息,请参阅https://github.com/un1t/django-cleanup

您唯一需要做的就是安装应用程序,将其添加到您的底部INSTALLED_APPSsettings.py就是这样。

当我删除模型实例时,该文件也会在我的 Amazon S3/Digitalocean Spaces 存储桶中自动删除。

于 2021-09-21T13:41:19.170 回答