diff options
Diffstat (limited to 'ishtar_common/data_importer.py')
-rw-r--r-- | ishtar_common/data_importer.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 8d53d78f1..2963fa680 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -625,6 +625,9 @@ class Importer(object): data['history_modifier'] = self.history_modifier obj, created = self.get_object(self.OBJECT_CLS, data) + if self.import_instance and hasattr(obj, 'imports'): + obj.imports.add(self.import_instance) + if created: self.number_created += 1 else: @@ -660,6 +663,8 @@ class Importer(object): for k in data['defaults']: setattr(t_obj, k, data['defaults'][k]) t_obj.save() + if self.import_instance and hasattr(t_obj, 'imports'): + t_obj.imports.add(self.import_instance) for formater, val in self._post_processing: formater.post_process(obj, data, val, owner=self.history_modifier) @@ -789,11 +794,15 @@ class Importer(object): val = data.pop(attribute) model = field_object.model if val.__class__ != model and type(val) == dict: + val['defaults'] = val.get('defaults', {}) if 'history_modifier' in \ model._meta.get_all_field_names(): - val['history_modifier'] = self.history_modifier + val['defaults']['history_modifier'] = \ + self.history_modifier val, created = field_object.model.objects.get_or_create( **val) + if self.import_instance and hasattr(val, 'imports'): + val.imports.add(self.import_instance) m2ms.append((attribute, val)) path = tuple(path) if path in self._defaults: @@ -814,6 +823,8 @@ class Importer(object): dct = create_dict.copy() dct['defaults'] = defaults obj, created = cls.objects.get_or_create(**create_dict) + if self.import_instance and hasattr(obj, 'imports'): + obj.imports.add(self.import_instance) except IntegrityError as e: raise IntegrityError(e.message) except: |