diff --git a/src/account/views.py b/src/account/views.py index 4f88c5140b7e7c19be08f485d18798be2c627974..48c33edba904be2463f21c83b01a8696b3f00374 100644 --- a/src/account/views.py +++ b/src/account/views.py @@ -3,6 +3,7 @@ from rest_framework import permissions from rest_framework.response import Response from rest_framework.decorators import action from common.permissions import IsSafeOrPatch +from django.db.models import Sum from . import models from . import serializers diff --git a/src/images/models.py b/src/images/models.py index b1f898eff7caef3d104727b343091ac4259653dd..cab2442d4eefa7e8d5200145ab567d911d12bffb 100644 --- a/src/images/models.py +++ b/src/images/models.py @@ -1,4 +1,7 @@ +import os + from django.db import models +from django.dispatch import receiver class Image(models.Model): @@ -8,3 +11,10 @@ class Image(models.Model): 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) diff --git a/src/kszkepzes/settings/base.py b/src/kszkepzes/settings/base.py index b040f8cf02b11324711e2a19c152aac3bf7be47e..a1ce1fbb2401262f421c430fb38a57a5e41da32c 100644 --- a/src/kszkepzes/settings/base.py +++ b/src/kszkepzes/settings/base.py @@ -161,4 +161,4 @@ STATIC_URL = '/staticfiles/' STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles") MEDIA_URL = "/mediafiles/" -MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles") \ No newline at end of file +MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles") diff --git a/src/mentors/models.py b/src/mentors/models.py index 2d952636f4339c5b7eda7ff4c8cd5d96a3e3a0b8..21c9a8d88bce2a19c9635ea0b76971961d112218 100644 --- a/src/mentors/models.py +++ b/src/mentors/models.py @@ -1,5 +1,8 @@ +import os + from django.db import models from account.models import Profile +from django.dispatch import receiver class Mentor(models.Model): @@ -16,3 +19,10 @@ class Mentor(models.Model): def __str__(self): return self.name + +# Deletes file from filesystem when File object is deleted. +@receiver(models.signals.post_delete, sender=Mentor) +def auto_delete_image_on_delete(sender, instance, **kwargs): + if instance.image: + if os.path.isfile(instance.image.path): + os.remove(instance.image.path)