diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-02-06 13:14:01 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-04-16 16:40:54 +0200 |
commit | 303a62efae3d3f568545c682649a29de1fb7fc83 (patch) | |
tree | a578615a92588ffba8c2736fa93528c9555a6496 /ishtar_common/models_common.py | |
parent | f7fc18c5267d745ab754be0039967f53468a3665 (diff) | |
download | Ishtar-303a62efae3d3f568545c682649a29de1fb7fc83.tar.bz2 Ishtar-303a62efae3d3f568545c682649a29de1fb7fc83.zip |
✨ scripts: ishtar_operation_fix_merged_towns
Diffstat (limited to 'ishtar_common/models_common.py')
-rw-r--r-- | ishtar_common/models_common.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index e4438be43..928b22630 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -2946,12 +2946,17 @@ class GeographicItem(models.Model): self.geodata.add(self.main_geodata) except (OperationalError, IntegrityError): pass - elif not self.main_geodata and self.geodata.count(): - # arbitrary associate the first to geodata - self.main_geodata = self.geodata.order_by("pk").all()[0] - self.skip_history_when_saving = True - self._no_move = True - self.save() + elif not self.main_geodata: + try: + with transaction.atomic(): + if self.geodata.count(): + # arbitrary associate the first to geodata + self.main_geodata = self.geodata.order_by("pk").all()[0] + self.skip_history_when_saving = True + self._no_move = True + self.save() + except (OperationalError, IntegrityError, IndexError): + pass @property def geodata_list(self): |