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