summaryrefslogtreecommitdiff
path: root/ishtar_common/data_importer.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2015-03-06 17:30:32 +0100
committerÉtienne Loks <etienne.loks@proxience.com>2015-05-06 16:08:19 +0200
commit6984db0ef7eccfcc5fd18d822f1535d50cf636a2 (patch)
treeb7d84812f9cc2b6a7b3c2657d0affa62f2a8dca4 /ishtar_common/data_importer.py
parent3cbc3abd69b2b9f60f5e1dda0fec8eb3e6853656 (diff)
downloadIshtar-6984db0ef7eccfcc5fd18d822f1535d50cf636a2.tar.bz2
Ishtar-6984db0ef7eccfcc5fd18d822f1535d50cf636a2.zip
Data importer: prevent stop of importation on bad message error
Diffstat (limited to 'ishtar_common/data_importer.py')
-rw-r--r--ishtar_common/data_importer.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py
index b70e76ffc..2f1d09199 100644
--- a/ishtar_common/data_importer.py
+++ b/ishtar_common/data_importer.py
@@ -687,8 +687,8 @@ class Importer(object):
if 'history_modifier' in \
self.OBJECT_CLS._meta.get_all_field_names():
data['history_modifier'] = self.history_modifier
- obj, created = self.get_object(self.OBJECT_CLS, data)
+ obj, created = self.get_object(self.OBJECT_CLS, data)
if self.import_instance and hasattr(obj, 'imports'):
obj.imports.add(self.import_instance)
@@ -923,8 +923,17 @@ class Importer(object):
for v in values:
getattr(obj, attr).add(v)
except IntegrityError as e:
- raise ImporterError("Erreur d'import %s, contexte : %s, erreur : %s" \
- % (unicode(cls), unicode(data), e.message.decode('utf-8')))
+ message = e.message
+ try:
+ message = unicode(e.message.decode('utf-8'))
+ except (UnicodeDecodeError, UnicodeDecodeError):
+ message = ''
+ try:
+ data = unicode(data)
+ except UnicodeDecodeError:
+ data = ''
+ raise ImporterError(u"Erreur d'import %s, contexte : %s, erreur : %s" \
+ % (unicode(cls), data, message))
return obj, created
return data