diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-05-15 12:18:56 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-05-15 12:18:56 +0200 |
commit | 049fdf160fbe176c5ea753499b9e7885b3ebf302 (patch) | |
tree | 8abbfa352fbdad0b90a0df609b08bec501a63527 /ishtar_common/data_importer.py | |
parent | e6436caf8edb39a3538e90fbed7c9a41396400d2 (diff) | |
download | Ishtar-049fdf160fbe176c5ea753499b9e7885b3ebf302.tar.bz2 Ishtar-049fdf160fbe176c5ea753499b9e7885b3ebf302.zip |
Data importer: manage concat of M2M (many columns)
Diffstat (limited to 'ishtar_common/data_importer.py')
-rw-r--r-- | ishtar_common/data_importer.py | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 95763ae09..c568f1861 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -36,7 +36,7 @@ from django.db.models import Q from django.template.defaultfilters import slugify from django.utils.translation import ugettext_lazy as _ -from ishtar_common.utils import get_all_field_names, update_data +from ishtar_common.utils import debug_line_no, get_all_field_names, update_data NEW_LINE_BREAK = '#####@@@#####' @@ -1015,13 +1015,21 @@ class Importer(object): for idx, key in enumerate(keys): if idx == (len(keys) - 1): # last if concat: - if key not in current_data: - current_data[key] = "" - if not value: - continue - current_data[key] = (current_data[key] + concat_str) \ - if current_data[key] else u"" - current_data[key] += value + if isinstance(value, (list, tuple)): + if key not in current_data: + current_data[key] = [] + if not value: + continue + current_data[key] += value + else: + if key not in current_data: + current_data[key] = "" + if not value: + continue + current_data[key] = ( + current_data[key] + concat_str) \ + if current_data[key] else u"" + current_data[key] += value elif force_value and value: if concat_str and key in current_data \ and current_data[key]: |