diff options
Diffstat (limited to 'archaeological_finds/models_finds.py')
| -rw-r--r-- | archaeological_finds/models_finds.py | 14 | 
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:  | 
