diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-02-06 13:14:01 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-02-10 14:45:20 +0100 |
commit | 098f1596fa82d4f2a509f549e50f13e07d0c5ded (patch) | |
tree | 4b8db40e3aaac6fc387e3ec98309c3d595090dd6 /ishtar_common/models_common.py | |
parent | 13cff2b11a06c9ed334c6bad96ce14a7e3d629d8 (diff) | |
download | Ishtar-098f1596fa82d4f2a509f549e50f13e07d0c5ded.tar.bz2 Ishtar-098f1596fa82d4f2a509f549e50f13e07d0c5ded.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): |