如何使用数据库路由器建议数据库基于活动会话而不是模型使用?

时间:2019-04-07 22:26:57

标签: django database session routing multiple-databases

django的官方文档,有关stackoverflow的其他答案以及其他资源提供了基于模型的数据库路由的教程/示例。换句话说,他们假设这种情况好像数据库选择取决于我们要操作的模型。这意味着很少有模型可以在少数数据库上运行,而其余模型可以在其余数据库上运行。

我的情况或我想要的是:

我希望在models.py中指定的所有模型都存储在所有数据库中。数据库选择必须由用户当前正在进行的会话决定。 每个用户都有自己的数据库,每个数据库都有每个模型。

我该如何实现? (希望我很清楚。)

消息来源怎么说:

def db_for_read(self, model, **hints):
    if model._meta.app_label in ['auth','admin','sessions','contenttypes']:
        return 'devops'
    return None

我想要类似的东西

def db_for_read(self, request, **hints):
    if request.session.get('username'):
        # If I name databases as per usernames
        return request.session['username']

0 个答案:

没有答案