From c6ee1f6f242a6fa5336ce7a670cebae72568ef0c Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Wed, 27 Jan 2010 07:57:18 +0000 Subject: [PATCH] Fixed #12693 -- Improved error handling when there is an error setting up the database router chain. Thanks to dhageman for the report and fix. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12305 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/db/utils.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/django/db/utils.py b/django/db/utils.py index da34570a76..83e2452546 100644 --- a/django/db/utils.py +++ b/django/db/utils.py @@ -92,9 +92,14 @@ class ConnectionRouter(object): self.routers = [] for r in routers: if isinstance(r, basestring): - module_name, klass_name = r.rsplit('.', 1) - module = import_module(module_name) - router = getattr(module, klass_name)() + try: + module_name, klass_name = r.rsplit('.', 1) + module = import_module(module_name) + router = getattr(module, klass_name)() + except ImportError, e: + raise ImproperlyConfigured('Error importing database router %s: "%s"' % (klass_name, e)) + except AttributeError: + raise ImproperlyConfigured('Module "%s" does not define a "%s" database router' % (module, klass_name)) else: router = r self.routers.append(router)