2015-10-14 2 views
0

Мы хотим, чтобы один экземпляр Django служил для разных доменов. Единственное различие между ними - разные шаблоны, все остальное одно и то же. Поэтому мы попытались просто изменить TEMPLATES.DIRS в middleware. Но загрузчик шаблонов Django игнорирует все изменения в Загружается TEMPLATES.DIRS, сделанный после settings.py.Как сделать Django поддержкой нескольких доменов с одним параметром settings.py?

Есть более или менее стандартный Django способ поддерживать различные TEMPLATES.DIRS для различных областей с только один settings.py?

+0

Есть ли причина, по которой этот * имеет * один экземпляр, или вы можете просто развернуть его дважды? – jpmc26

+0

Эти домены/веб-сайты слишком близки к различным параметрам settings.py. Нам просто нужно использовать для них другие base.html (и еще несколько шаблонов). – Jury

+0

Дублированный код во время разработки - проблема ремонтопригодности. Дублирование при * развёртывании * время * абсолютно отлично *. С высоты птичьего полета это звучит так, как будто вам нужны две конфигурации для одного и того же приложения. Стандартными для этого являются две отдельные установки с различными конфигурациями. Вам просто нужен плавный (возможно, в основном автоматический) процесс развертывания и убедитесь, что вы обновляете их одновременно. – jpmc26

ответ

0

Для решения проблемы используйте шаблонную переменную, как extend, так и include Поддерживаемые переменные. Просто опускаем quatation метки:

{% extends "base.html" %} 

становится

{% extends string_variable_with_file_name %} 

причины вы должны установить эту переменную в нужное имя файла в вашем контексте.