Как с помощью джанго на бэке вычислять из какого домена был послан запрос и в зависимости от ответа применять те или иные настройки?
Как вариант, можно создать новый класс в middleware с проверкой источника запроса и использованием другого конфига по условию. В wsgi.py (если используется wsgi) пишем примерно так:
class CustomMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
d = request.get_host().split(':')[0]
if d == 'www.prod.com':
settings = importlib.import_module('project.config_prod')
elif d == 'www.test.com':
settings = importlib.import_module('project.config_test')
else:
settings = importlib.import_module('project.config')
request.settings = settings
response = self.get_response(request)
return response
Django не рекомендует изменять настройки в рантайме (после запуска Django), так как это может привести к нестабильной работе и непредсказуемым результатам, особенно в многопоточной среде. А так же, импортирование разных настроек внутри middleware не обязательно повлияет на уже инициализированные компоненты Django, такие как модели, представления и т.д., так как большинство настроек читается Django один раз при запуске.