diff options
Diffstat (limited to 'debug_toolbar/panels/sql.py')
| -rw-r--r-- | debug_toolbar/panels/sql.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py index 344f5d6..9f4e83c 100644 --- a/debug_toolbar/panels/sql.py +++ b/debug_toolbar/panels/sql.py @@ -70,6 +70,23 @@ class SQLDebugPanel(DebugPanel): self._num_queries = 0 self._queries = [] self._databases = {} + self._transaction_status = {} + + def get_transaction_status(self, alias, reset=False): + conn = connections[alias].connection + if not conn: + return None + + engine = conn.__class__.__module__.split('.', 1)[0] + + if reset or self._transaction_status.get(alias) is None: + if engine == 'psycopg2': + self._transaction_status[alias] = conn.get_transaction_status() + else: + raise ValueError(engine) + + return self._transaction_status[alias] + def record(self, alias, **kwargs): self._queries.append((alias, kwargs)) |
