Маршрутизация базы данных на основе URL

Я настроил маршрутизацию базы данных на основе URL-адресов, вдохновленный этим ответом, чтобы использовать одно и то же приложение для разных проектов /баз данных.Проекты не нуждаются в совместном использовании каких-либо данных, контроль доступа осуществляется каждым проектом отдельно, и мне нужен административный сайт для каждого проекта.Как и в исходном сообщении, я использую маршрутизатор базы данных и промежуточное программное обеспечение, которое определяет, какая база данных будет использоваться по пути запроса, например, ---- +: = 0 =: + ---- будет перенаправлено в базу данных ----+: = 1 =: + ---- и ---- +: = 2 =: + ---- в базу данных ---- +: = 3 =: + ---- .Затем шаблоны URL-адресов необходимо расширить, включив в них подпуть, которая относится к конкретной базе данных.Я сделал это, жестко закодировав URL-адреса на уровне проекта urls.py следующим образом:Я признаю, что это не очень хорошо, но я не ожидаю, что мне придется управлять более чем несколькими базами данных.Интересно, что не имеет значения, какой аргумент пространства имен, но он должен быть указан.Исходное пространство имен приложения было ---- +: = 6 =: + ----, и оно используется для реверсирования URL во всех представлениях и шаблонах приложения.Затем на уровне приложения urls.py необходимо определить app_name (и быть равным исходному пространству имен):В представлениях я добавил ---- +: = 8 =: + ---- kwarg к каждому вызову ---- +: = 9 =: + ----, как описано в django docs.Разрешение URL в шаблонах не требует модификации.В целом это работает очень хорошо, за двумя исключениями:изменение URL-адреса для любого из представлений администратора всегда будет разрешено до первой записи в urls.pyЯ не могу заставить его работать с ---- +: = 10 =: + ---- в основном, я думаю, потому что ---- +: = 11 =: + ---- и ---- +: =12 =: + ---- - константы.Мне интересно, чистый ли это подход и есть ли решение для двух упомянутых выше исключений.Если нет, что было бы лучшим решением?
7 голосов | спросил Christian K. 3 PMpMon, 03 Apr 2017 19:33:25 +030033Monday 2017, 19:33:25

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132