diff --git a/src/backend/InvenTree/common/migrations/0044_note.py b/src/backend/InvenTree/common/migrations/0044_note.py index 733d8fc201..98f4957b81 100644 --- a/src/backend/InvenTree/common/migrations/0044_note.py +++ b/src/backend/InvenTree/common/migrations/0044_note.py @@ -115,7 +115,7 @@ class Migration(migrations.Migration): field=models.ForeignKey( blank=True, null=True, - on_delete=django.db.models.deletion.SET_NULL, + on_delete=django.db.models.deletion.CASCADE, to="common.note", related_name='images', ), diff --git a/src/backend/InvenTree/common/models.py b/src/backend/InvenTree/common/models.py index 383f2d9f1e..f7ee87ee0d 100644 --- a/src/backend/InvenTree/common/models.py +++ b/src/backend/InvenTree/common/models.py @@ -3095,6 +3095,13 @@ class NotesImage(models.Model): Simply stores the image file, for use in the 'notes' field (of any models which support markdown). """ + def delete(self, *args, **kwargs): + """Ensure that the image file is deleted from storage when the NotesImage instance is deleted.""" + if self.image: + self.image.delete(save=False) + + super().delete(*args, **kwargs) + image = models.ImageField( upload_to=rename_notes_image, verbose_name=_('Image'), help_text=_('Image file') ) @@ -3119,7 +3126,7 @@ class NotesImage(models.Model): ) note = models.ForeignKey( - Note, on_delete=models.SET_NULL, null=True, blank=True, related_name='images' + Note, on_delete=models.CASCADE, null=True, blank=True, related_name='images' )