diff --git a/backend/server/adventures/models.py b/backend/server/adventures/models.py index b79fa6d..6a3d970 100644 --- a/backend/server/adventures/models.py +++ b/backend/server/adventures/models.py @@ -660,6 +660,9 @@ class Adventure(models.Model): # Delete all associated AdventureImages first to trigger their filesystem cleanup for image in self.images.all(): image.delete() + # Delete all associated Attachment files first to trigger their filesystem cleanup + for attachment in self.attachments.all(): + attachment.delete() super().delete(*args, **kwargs) def __str__(self): @@ -861,6 +864,11 @@ class Attachment(models.Model): adventure = models.ForeignKey(Adventure, related_name='attachments', on_delete=models.CASCADE) name = models.CharField(max_length=200, null=True, blank=True) + def delete(self, *args, **kwargs): + if self.file and os.path.isfile(self.file.path): + os.remove(self.file.path) + super().delete(*args, **kwargs) + def __str__(self): return self.file.url