diff options
Diffstat (limited to 'ishtar_common/data_importer.py')
-rw-r--r-- | ishtar_common/data_importer.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 0caccf46d..6e71d69bb 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -28,6 +28,7 @@ import zipfile from django.conf import settings from django.contrib.auth.models import User from django.db.models.fields import FieldDoesNotExist +from django.core.exceptions import FieldError from django.core.files import File from django.db import IntegrityError, DatabaseError, transaction from django.db.models import Q @@ -1480,8 +1481,14 @@ class Importer(object): created = False if not self.MODEL_CREATION_LIMIT or \ model in self.MODEL_CREATION_LIMIT: - v, created = model.objects.get_or_create( - **v) + try: + v, created = model.objects.get_or_create( + **v) + except FieldError as e: + raise ImporterError( + unicode( + _(u"Importer configuration error: " + u"\"{}\".")).format(e.message)) else: get_v = v.copy() if 'defaults' in get_v: @@ -1585,7 +1592,7 @@ class Importer(object): c_path.append(attribute) data[attribute], created = self.get_object( field_object.rel.to, data[attribute].copy(), c_path) - except ImporterError, msg: + except ImporterError as msg: self.errors.append((self.idx_line, None, msg)) data[attribute] = None @@ -1814,7 +1821,6 @@ class Importer(object): # post save/m2m specific fix obj.fix() except IntegrityError as e: - message = e.message try: message = e.message.decode('utf-8') except (UnicodeDecodeError, UnicodeDecodeError): @@ -1824,7 +1830,7 @@ class Importer(object): except UnicodeDecodeError: data = '' raise ImporterError( - "Erreur d'import %s %s, contexte : %s, erreur : %s" + u"Erreur d'import %s %s, contexte : %s, erreur : %s" % (unicode(cls), unicode("__".join(path)), unicode(data), message)) return obj, created |