diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-02-14 20:47:35 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-02-14 20:47:35 +0100 | 
| commit | d147e85723e8c9d3466c9b3d56288696b21a6ad8 (patch) | |
| tree | 6676db2c7e898db0677f0440c5a979616827b8a8 /ishtar_common/data_importer.py | |
| parent | a372122f76ed2775a858399f790e10807f637d60 (diff) | |
| download | Ishtar-d147e85723e8c9d3466c9b3d56288696b21a6ad8.tar.bz2 Ishtar-d147e85723e8c9d3466c9b3d56288696b21a6ad8.zip | |
Importer: report bad configuration in a cleaner way
Diffstat (limited to 'ishtar_common/data_importer.py')
| -rw-r--r-- | ishtar_common/data_importer.py | 13 | 
1 files changed, 9 insertions, 4 deletions
| diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index a03f4de34..0b6662e1c 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -29,7 +29,7 @@ import zipfile  from django.conf import settings  from django.contrib.auth.models import User -from django.core.exceptions import ImproperlyConfigured +from django.db.models.fields import FieldDoesNotExist  from django.core.files import File  from django.db import IntegrityError, DatabaseError, transaction  from django.template.defaultfilters import slugify @@ -733,7 +733,7 @@ class Importer(object):          q = ImporterModel.objects.filter(klass=cls_name)          if q.count():              cls_name = q.all()[0].name -        return ImproperlyConfigured( +        return ImporterError(              unicode(self.ERRORS['improperly_configured']).format(cls_name))      def _get_does_not_exist_in_db_error(self, model, data): @@ -1217,8 +1217,13 @@ class Importer(object):          c_row.append(u" ; ".join([v for v in c_values]))      def get_field(self, cls, attribute, data, m2ms, c_path, new_created): -        field_object, model, direct, m2m = \ -            cls._meta.get_field_by_name(attribute) +        try: +            field_object, model, direct, m2m = \ +                cls._meta.get_field_by_name(attribute) +        except FieldDoesNotExist: +            raise ImporterError(unicode( +                _(u"Importer configuration error: field \"{}\" does not exist " +                  u"for {}.")).format(attribute, cls._meta.verbose_name))          if m2m:              many_values = data.pop(attribute)              if hasattr(field_object, 'rel'): | 
