A few thoughts:
- How will Django know which database is "chosen"? It would need
some kind of thread-global storage to know. That's, IMO, not very nice.
- Is "using" really such a great name? If I look at it, I don't
really associate to databases or anything like it.
- Isn't the QuerySet object responsible for knowing what to query?
Like:
db1_count = User.objects.at("db2").count()
As for reusability, it becomes sort of a tough situation for app
developers if they're responsible entirely for defining which database
takes care of what - if you'd use the QuerySet-centered way, you'd be
able to pass that to generic views, for example.
These are just my thoughts, though.