summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_finds.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r--archaeological_finds/models_finds.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index 4b976a730..5eb204949 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -3241,7 +3241,7 @@ class Find(
old_container = self.__class__.objects.filter(pk=self.pk).values_list(
"container_id", flat=True
)[0]
- super(Find, self).save(*args, **kwargs)
+ super().save(*args, **kwargs)
self.skip_history_when_saving = True
if self.container_ref and not self.container:
@@ -3249,12 +3249,16 @@ class Find(
if self.container and self.container._calculate_weight():
self.container.save()
- elif not self.container and old_container:
+ if (self.container and self.container.pk != old_container) or (
+ not self.container and old_container):
# force recalculation of weight when a find is removed
Container = apps.get_model("archaeological_warehouse.Container")
- old_container = Container.objects.get(pk=old_container)
- if old_container._calculate_weight():
- old_container.save()
+ try:
+ old_container = Container.objects.get(pk=old_container)
+ if old_container._calculate_weight():
+ old_container.save()
+ except Container.DoesNotExist:
+ pass
updated = self.update_external_id(save=False)
if updated: