我有一个多数据库 Django 项目(Python 2.7、Django 1.4),我需要通过该请求中的 url 选择在请求中触发的每个事务中使用的数据库。
前任:
url='db1.myproject.com'
将触发在每个事务中使用“db1”,如下所示:
MyModel.objects.using('db1').all()
这就是我的问题所在。它几乎不可能在每次调用 'Model.objects' 时都包含 '.using(dbname)' 函数(这个项目已经有 2 打模型,并且它的构建考虑到了缩放,所以它可以有数百个模型,而且几乎每个模型都有(或可能有)一个 post_save/post_delete 的实现,它充当数据库触发器)。
有没有办法告诉 django 他应该为这个或那个请求更改默认数据库?
我已经有一个自定义查询集和一个自定义管理器,所以,如果我可以告诉他们数据库应该是这个或那个可以解决问题(我找不到任何地方如何在其中获取请求数据)。
任何帮助将不胜感激。