diff options
| author | Claude Paroz <claude@2xlibre.net> | 2013-05-21 11:11:05 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2013-05-23 15:19:12 +0200 |
| commit | 499a745ae1b53614035b9993b148f32d4ce3f138 (patch) | |
| tree | 2bd8636564f1674de89751ac553ea04ec1638290 /django | |
| parent | a46a399534c26abd3f4984149b820f34869d6b74 (diff) | |
Fixed #20474 -- Proxied and deprecated django.db.backend
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/__init__.py | 24 |
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( |
