catch error raised inside the settings code

This commit is contained in:
Bruno Clermont 2012-11-26 16:25:00 +08:00
parent c5c0feff9f
commit 1b052a3a0e

View file

@ -148,9 +148,19 @@ class SettingsLoader(object):
except Exception, err:
raise ImproperlyConfigured("Couldn't load settings '%s.%s': %s" %
(mod.__name__, self.name, err))
for name, value in uppercase_attributes(obj).items():
try:
attributes = uppercase_attributes(obj).items()
except Exception, err:
raise ImproperlyConfigured("Couldn't get items of settings '%s.%s': %s" %
(mod.__name__, self.name, err))
for name, value in attributes:
if callable(value):
value = value()
setattr(mod, name, value)
try:
value = value()
except Exception, err:
raise ImproperlyConfigured(
"Couldn't execute callable '%s' in '%s.%s': %s" %
value, mod.__name__, self.name, err))
setattr(mod, name, value)
setattr(mod, 'CONFIGURATION', '%s.%s' % (fullname, self.name))
return mod