Django: Как удалить медиафайлы на Digitalocean Spaces/ Amazon S3 автоматически при удалении экземпляра модели

В моем 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, если соответствующий экземпляр модели удален?

Ок, самым простым способом кажется использование стороннего пакета django-cleanup, смотрите https://github.com/un1t/django-cleanup для подробностей.

Единственное, что вам нужно сделать, это установить приложение, добавить его внизу вашего INSTALLED_APPS в settings.py и все.

Когда я удаляю экземпляр модели, файл также автоматически удаляется в моем ведре Amazon S3/Digitalocean Spaces.

Вернуться на верх