diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/models.py | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 087e772e7..eda26cd97 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1448,7 +1448,7 @@ class Merge(models.Model):              return          if not self.merge_key:              self.generate_merge_key() -            self.save() +            self.save(merge_key_generated=True)          if not self.pk or self.merge_key == self.EMPTY_MERGE_KEY:              return          q = self.__class__.objects\ @@ -1469,9 +1469,14 @@ class Merge(models.Model):              self.merge_candidate.add(item)      def save(self, *args, **kwargs): +        # prevent circular save +        merge_key_generated = False +        if 'merge_key_generated' in kwargs: +            merge_key_generated = kwargs.pop('merge_key_generated')          self.generate_merge_key()          item = super(Merge, self).save(*args, **kwargs) -        self.generate_merge_candidate() +        if not merge_key_generated: +            self.generate_merge_candidate()          return item      def archive(self): | 
