Мои модели:
class Spectacle(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(max_length=100 unique=False)
description = models.TextField()
class SpectacleGallery(models.Model):
spectacle = models.ForeignKey(Spectacle)
image = models.ImageField(upload_to=upload_path_handler, max_length=255, help_text=_(u'tylko pliki z rozszerzeniem .jpg'))
image_thumb = models.CharField(max_length=255, editable=False, blank=True, null=True)
def delete(self, *args, **kwargs):
image_thumb_abs = settings.MEDIA_ROOT + str(self.image_thumb)
# try to delete thumb and image
try:
remove(image_thumb_abs)
except Exception:
pass
try:
self.image.delete()
except Exception:
pass
super(SpectacleGallery, self).delete(*args, **kwargs) # Call the "real" delete() method.
#try to delete dir
try:
removedirs(settings.SPECTACLE_GALLERY_UPLOAD_PATH + str(self.spectacle_id))
except:
pass
Теперь в админке при удалении из SpectacleGallery файл удаляется с диска и БД правильно. Проблема в том, когда я хочу удалить Spectacle. Страница удаления спрашивает, действительно ли я удалю Spectacle и все связанные изображения. Подтверждаю и: все записи из базы данных удалены. К сожалению, файлы из SpectacleGallery не удаляются. Я вставляю печать в метод delete () в SpectacleGallery. Ничего не показывает, поэтому мой вопрос:
Почему метод удаления не вызывается при удалении таким образом?