summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-05-21 11:11:05 +0200
committerClaude Paroz <claude@2xlibre.net>2013-05-23 15:19:12 +0200
commit499a745ae1b53614035b9993b148f32d4ce3f138 (patch)
tree2bd8636564f1674de89751ac553ea04ec1638290 /django
parenta46a399534c26abd3f4984149b820f34869d6b74 (diff)
Fixed #20474 -- Proxied and deprecated django.db.backend
Diffstat (limited to 'django')
-rw-r--r--django/db/__init__.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/django/db/__init__.py b/django/db/__init__.py
index 08c901ab7b..077e1b2d8b 100644
--- a/django/db/__init__.py
+++ b/django/db/__init__.py
@@ -8,6 +8,7 @@ from django.db.utils import (DEFAULT_DB_ALIAS,
ProgrammingError, NotSupportedError, DatabaseError,
InterfaceError, Error,
load_backend, ConnectionHandler, ConnectionRouter)
+from django.utils.functional import cached_property
__all__ = ('backend', 'connection', 'connections', 'router', 'DatabaseError',
'IntegrityError', 'DEFAULT_DB_ALIAS')
@@ -45,7 +46,28 @@ class DefaultConnectionProxy(object):
return delattr(connections[DEFAULT_DB_ALIAS], name)
connection = DefaultConnectionProxy()
-backend = load_backend(connection.settings_dict['ENGINE'])
+
+class DefaultBackendProxy(object):
+ """
+ Temporary proxy class used during deprecation period of the `backend` module
+ variable.
+ """
+ @cached_property
+ def _backend(self):
+ warnings.warn("Accessing django.db.backend is deprecated.",
+ PendingDeprecationWarning, stacklevel=2)
+ return load_backend(connections[DEFAULT_DB_ALIAS].settings_dict['ENGINE'])
+
+ def __getattr__(self, item):
+ return getattr(self._backend, item)
+
+ def __setattr__(self, name, value):
+ return setattr(self._backend, name, value)
+
+ def __delattr__(self, name):
+ return delattr(self._backend, name)
+
+backend = DefaultBackendProxy()
def close_connection(**kwargs):
warnings.warn(