(это не является дубликатом "Изменение переменной настроек Django динамически на основе запроса для нескольких сайтов" , поскольку этот предыдущий вопрос посвящен более серьезной реконфигурации во время выполнения)
Iиспользуйте sites.Site
для привязки контента к доменам / хосту в моем проекте (через внешний ключ).Выбор подходящего Site
на основе request.META['HTTP_HOST']
происходит в моем специальном промежуточном программном обеспечении.
Однако я знаю, что такое использование sites
Framework не совсем канонический путь (у меня есть один экземпляр приложения, обслуживающий разные данные для разных доменов, тогда как sites
- AFAIK - был разработан для работы с несколькими экземплярами, по одному на каждый домен).
элемент, который беспокоитменя больше всего settings.SITE_ID
- статическая настройка, которая связывает текущий экземпляр приложения с одним Site
(домен).Это используется в нескольких местах, например contrib.auth
(для составления полного, абсолютного URL в электронном письме для сброса пароля).Таким образом, было бы здорово динамически изменить SITE_ID
на основе request.META['HTTP_HOST']
.
Поэтому мой вопрос:
Динамическое изменение SITE_ID (то есть в промежуточном программном обеспечении) считается хорошимидея?
Документация утверждает, что изменение настроек во время выполнения, как правило, плохая идея ( здесь ), но, возможно, сделать это в этом случае (в промежуточном программном обеспечении, вызываемом достаточно рано), хорошо.
(правка):
Локально работает как положено (тестовый клиент Django), но я рассматриваю параллельные запросы в производственной среде с несколькими потоками и / или процессами.