Считается ли изменение SITE_ID динамически в промежуточном программном обеспечении хорошей идеей?

(это не дублирует « Динамическое изменение переменных настроек Django на основе запроса для нескольких сайтов », поскольку предыдущий вопрос касается гораздо более серьезной реконфигурации во время выполнения)

Я использую sites.Site для привязки контента к доменам / хосту в моем проекте (через внешний ключ). Выбор подходящего сайта на основе request.META ['HTTP_HOST'] происходит в моем настраиваемом промежуточном программном обеспечении.

Однако я знаю, что такое использование сайтов - это не совсем Канонический Путь (у меня есть один экземпляр приложения, обслуживающий разные данные для разных доменов, а сайты - AFAIK - были разработаны для работы с несколькими экземпляров, по одному на каждый домен).

Больше всего меня беспокоит settings.SITE_ID - статическая настройка, связывающая текущий экземпляр приложения с одним сайтом (домен ). Он используется в нескольких местах, например, contrib.auth (для создания полного абсолютного URL-адреса в электронном письме для сброса пароля). Итак, было бы здорово динамически изменять SITE_ID на основе request.META ['HTTP_HOST'] .

Итак, мой вопрос:

Меняется ли SITE_ID динамически (т.е. в промежуточном программном обеспечении) считается хорошей идеей?

В документации указано, что изменение настроек во время выполнения, как правило, является плохой идеей ( здесь ), но, возможно, делать это в этом случае (в промежуточном программном обеспечении, вызванном достаточно рано), нормально.

(править):

Он работает должным образом локально (тестовый клиент Django), но я рассматриваю одновременные запросы в производственной среде с несколькими потоками и / или процессами.

7
задан Community 23 May 2017 в 12:06
поделиться