Re-work the re-use of old metadata after deletion

This commit is contained in:
tcely authored and GitHub committed 2025-06-05 03:29:57 -04:00
1 parent 4dc7243972
commit 3c85d5531e
1 file changed
+10 -7
+10 -7
View File
@@ -4,7 +4,7 @@ from tempfile import TemporaryDirectory
from django.conf import settings
from django.db import IntegrityError
from django.db.models.signals import pre_save, post_save, pre_delete, post_delete
from django.db.transaction import on_commit
from django.db.transaction import atomic, on_commit
from django.dispatch import receiver
from django.utils.translation import gettext_lazy as _
from background_task.signals import task_failed
@@ -433,13 +433,16 @@ def media_post_delete(sender, instance, **kwargs):
key=skipped_media.key,
)
try:
instance_qs.update(media=skipped_media)
if instance_qs.count():
with atomic(durable=False):
instance_qs.update(media=skipped_media)
except IntegrityError:
# Delete the new metadata
Metadata.objects.filter(media=skipped_media).delete()
try:
instance_qs.update(media=skipped_media)
except IntegrityError:
# Delete the old metadata if it still failed
with atomic(durable=False):
# Delete the new metadata
Metadata.objects.filter(media=skipped_media).delete()
instance_qs.update(media=skipped_media)
finally:
# Delete the old metadata, if it wasn't used
instance_qs.delete()