From 79f909a50190a879a04d853a4fd0e89e3bf3642d Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 3 Dec 2019 14:18:03 +0100 Subject: Import: set localisation only on post save --- ishtar_common/data_importer.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'ishtar_common/data_importer.py') diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index b0e01d70d..85c5437d1 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -1734,12 +1734,16 @@ class Importer(object): }) created = False + post_save_keys = [] try: try: dct = create_dict.copy() for key in dct: if callable(dct[key]): dct[key] = dct[key]() + if getattr(dct[key], "post_save", True): + dct.pop(key) + post_save_keys.append(key) if '__force_new' in dct: created = dct.pop('__force_new') if not [k for k in dct if dct[k] is not None]: @@ -1853,6 +1857,8 @@ class Importer(object): dct.pop('defaults') raise IntegrityError(str(e)) # obj = cls.objects.filter(**dct).all()[0] + for key in post_save_keys: + getattr(obj, key)() for attr, value in m2ms: values = [value] if type(value) in (list, tuple): -- cgit v1.2.3