resolve_model_string now raises LookupError

Django 1.7 raises a `LookupError` when looking for a model that does not
exist. This brings the code in to line with Django. The `LookupError`
from Django is allowed to propagate in 1.7, and a `LookupError` is now
raised instead of a `NameError` in 1.6.

All code using `resolve_model_string` has been changed to catch the new
errors.
This commit is contained in:
Tim Heap 2014-09-05 09:59:53 +10:00
parent 7921abe924
commit b8b79cd151
3 changed files with 5 additions and 5 deletions

View file

@ -485,7 +485,7 @@ class BasePageChooserPanel(BaseChooserPanel):
if cls.page_type:
try:
model = resolve_model_string(cls.page_type)
except NameError:
except LookupError:
raise ImproperlyConfigured("{0}.page_type must be of the form 'app_label.model_name', given {1!r}".format(
cls.__name__, cls.page_type))
except ValueError:

View file

@ -517,7 +517,7 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, index.Indexed
try:
models = [resolve_model_string(model_string, cls._meta.app_label)
for model_string in subpage_types]
except NameError as err:
except LookupError as err:
raise ImproperlyConfigured("{0}.subpage_types must be a list of 'app_label.model_name' strings, given {1!r}".format(
cls.__name__, err.args[1]))
res = list(map(ContentType.objects.get_for_model, models))
@ -541,7 +541,7 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, index.Indexed
try:
models = [resolve_model_string(model_string, cls._meta.app_label)
for model_string in parent_page_types]
except NameError as err:
except LookupError as err:
raise ImproperlyConfigured("{0}.parent_page_types must be a list of 'app_label.model_name' strings, given {1!r}".format(
cls.__name__, err.args[1]))
res = list(map(ContentType.objects.get_for_model, models))

View file

@ -28,11 +28,11 @@ def resolve_model_string(model_string, default_app=None):
model = get_model(app_label, model_name)
if not model:
raise NameError("Can not resolve {0!r} in to a model".format(model_string), model_string)
raise LookupError("Can not resolve {0!r} in to a model".format(model_string), model_string)
return model
elif model_string is not None and issubclass(model_string, Model):
return model
else:
raise NameError("Can not resolve {0!r} in to a model".format(model_string), model_string)
raise LookupError("Can not resolve {0!r} in to a model".format(model_string), model_string)