Hello, This is an idea that came up during the djangocon-europe conference: Add the ability to install general instrumentation hooks around the database "execute" and "executemany" calls.
Such hooks would allow all sorts of interesting features. For one, they could replace the current special-case allowing assertNumQueries & friends to record queries out of debug mode (it's an ugly hack, really), but they could also support my imagined use case -- a context-manager which could prevent database access during execution of some code (I'm thinking mostly of using it around "render()" calls and serialization, to make sure all database access is being done in the view). My idea for implementation is to keep a thread-local stack of context- managers, and have them wrap each call of "execute". We could actually even use one such context-manager instead of the existing CursorDebugWrapper. Thoughts?