Добрый день, сделал модельку Django, которая сохраняет фотографии продуктов в отдельную папочку с именем продукта, причём фотографий можно добавлять несколько.
Столкнулся с проблемой, что при удалении объекта, сами файлы фотографий не удаляются, поэтому написал такой сигнал, чтобы при удалении объекта он срабатывал и удалял объекты в папке media с именем продукта.
@receiver(pre_delete, sender=Photo)
def update_cart(sender, instance, **kwargs):
path = os.path.join(os.path.abspath(os.path.dirname('media')), os.path.join('media', f'product_{instance.product.product_name}'))
shutil.rmtree(path)
Мой вопрос такой, насколько такой подход можно использовать и создаст ли он какие-то проблемы при развёртывании этого проекта на сервере или это вообще "колхоз"
дополнительно:
class Photo(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
photo = models.ImageField(upload_to=user_directory_path)
Я знаю, что можно использовать поле своей модели instance.photo.delete(), но это удаляет только один экземпляр фото, а у меня к модели товара через ForeignKey привязаны фотографии. Что-то вроде галереи