Как использовать базы данных-маршрутизаторы, чтобы предложить использовать базу данных на основе активного сеанса вместо модели? - PullRequest
0 голосов
/ 08 апреля 2019

Официальная документация 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']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...