summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorKaren Tracey <kmtracey@gmail.com>2010-04-14 19:14:23 +0000
committerKaren Tracey <kmtracey@gmail.com>2010-04-14 19:14:23 +0000
commitef6308db01f7b57467f62b731ce968a9fa18fc48 (patch)
tree2600e4449d51cc536c0927d88b23228a8c7174f5 /django
parent65a9d73069349800fb956a19fd19948956da3208 (diff)
[1.1.X] Fixed #13335: Adjusted the r12950 fix to properly handle import errors resulting from nested calls to load_app.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12973 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
-rw-r--r--django/db/models/loading.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/django/db/models/loading.py b/django/db/models/loading.py
index 5a8cb0d083..ddf6d3c99f 100644
--- a/django/db/models/loading.py
+++ b/django/db/models/loading.py
@@ -74,16 +74,23 @@ class AppCache(object):
app_module = import_module(app_name)
try:
imp.find_module('models', app_module.__path__)
+ except ImportError:
+ self.nesting_level -= 1
+ # App has no models module, that's not a problem.
+ return None
+ try:
+ models = import_module('.models', app_name)
except ImportError:
self.nesting_level -= 1
if can_postpone:
- # Either the app has no models, or the package is still being
+ # Either the app has an error, or the package is still being
# imported by Python and the model module isn't available yet.
# We will check again once all the recursion has finished (in
# populate).
self.postponed.append(app_name)
- return None
- models = import_module('.models', app_name)
+ return None
+ else:
+ raise
self.nesting_level -= 1
if models not in self.app_store:
self.app_store[models] = len(self.app_store)