Могут ли модели знать, какой арендатор его использует? - PullRequest
0 голосов
/ 07 ноября 2019

Я предлагаю SaaS, в основном в виде панели инструментов django и настраиваемой панели администратора. Используя арендаторов, у меня есть одна схема для каждого клиента, совместно использующего базу данных. У меня проблема в том, что клиент должен иметь возможность создавать объекты через страницу администратора, а объекты должны создавать URL с информацией об арендаторе. Например, URL клиента Y будет Y.xzxzxz.com, а URL клиента X будет X.xzxzxz.com. Будет несколько типов URL с одинаковым префиксом. В настоящее время клиенты должны вручную вводить префикс клиента. Может ли класс Models знать, какая схема его использует?

1 Ответ

0 голосов
/ 07 ноября 2019

Не совсем понятно, о чем вы спрашиваете. Но я предполагаю, что вы хотите знать, в какой из нескольких баз данных существует модель.

Ваш settings.py, вероятно, будет иметь DATABASE таких ключей, как:

DATABASES = {
    'default': 'postgres://user:pass@localhost:5432/default',
    'tenant_1': 'postgres://user:pass@localhost:5432/tenant_1',
}

ТакКак только вы сохранили модель, вы можете определить, в какой базе данных она существует, выполнив:

instance = YourModel.objects.create()
print(instance._state.db)
# Prints "default" or "tenant_1" depending on which database its in

соответствующие документы здесь

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