Использование соединений Django using() со связанными полями

У меня есть проект Django, которому время от времени требуется доступ (только для чтения) к определенной паре иностранных баз данных. Обе базы данных имеют идентичные схемы.

Я сделал приложение Django для схемы базы данных. Я также настроил маршрутизатор базы данных таким образом, что доступ на чтение будет возвращать "unknown" (буквально эту строку), что приводит к "неизвестному соединению". Это сделано намеренно, так что using(connection) явно требуется, а по умолчанию нет.

Моя проблема в том, что как только я беру объект из модели, using() теряется для связанных объектов. Поля внешних ключей не наследуют using(), как и такие вещи, как obj.foo_set.all(). Что еще более странно, obj.foo_set.using(...).all(), похоже, тоже не применяет using(connection).

Похоже, что единственное решение - это вручную разрешить все связанные поля с помощью чего-то вроде OtherModel.objects.using(obj_id=obj.id)...

Есть ли другой способ справиться с этим? Мне трудно искать решение, потому что using django - довольно бесполезный поисковый запрос. Я не хочу глобально временно менять менеджеров.

Вернуться на верх