I have a model - Product, which contains a thumbnail image. I have another model which contains images associated with the product - ProductImage. I want to delete both the
In 1.11 Django. Code work!
import os
from django.db import models
from django.utils import timezone
from django.db.models.signals import pre_delete
from django.dispatch.dispatcher import receiver
class Post(models.Model):
category = models.ForeignKey(Category, verbose_name='Категория')
title = models.CharField('Заголовок', max_length=200, unique=True)
url = models.CharField('ЧПУ', max_length=200, unique=True)
photo = models.ImageField('Изображение', upload_to="blog/images/%Y/%m/%d/", default='', blank=True)
content = models.TextField('Контент')
created_date = models.DateTimeField('Дата', default=timezone.now)
def _delete_file(path):
# Deletes file from filesystem.
if os.path.isfile(path):
os.remove(path)
@receiver(pre_delete, sender=Post)
def delete_img_pre_delete_post(sender, instance, *args, **kwargs):
if instance.photo:
_delete_file(instance.photo.path)