import os

from django.db import models
from django.dispatch import receiver


class Image(models.Model):
    image = models.ImageField(
        upload_to='public/images/', null=True, blank=True
        )

    def __str__(self):
        return str(self.id)

# Deletes file from filesystem when File object is deleted.
@receiver(models.signals.post_delete, sender=Image)
def auto_delete_image_on_delete(sender, instance, **kwargs):
    if instance.image:
        if os.path.isfile(instance.image.path):
            os.remove(instance.image.path)