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.