Я хочу иметь динамические каталоги, в которых будут находиться шаблоны. Позвольте мне объяснить, что я имею в виду. У меня есть система приложений, имеющая такую файловую структуру:
Код: Выделить всё
\proj
__init__.py
settings.py
urls.py
...
\system
__init__.py
models.py
views.py
urls.py
\modules
\module_1
__init__.py
models.py
views.py
urls.py
\templates ## Attention
one.html
two.html
\module_2
__init__.py
modules.py
\templates ##
three.html
four.html
...
\module_N
...
Как видите, существует папка модулей, содержащая «атомарные» модули, атомарные в том смысле, что все необходимые файлы, включая шаблоны, находятся в одном месте. Таким образом, у модуля_1 есть папка шаблонов со своими шаблонами, у модуля_2 есть папка шаблонов, а у всех остальных модулей есть своя папка шаблонов. Я хочу иметь возможность ссылаться на эти папки шаблонов в моем файле settings.py, чтобы при загрузке нового модуля в папку модулей мне не приходилось изменять этот файл settings.py. Итак, мой вопрос: как я могу динамически создавать переменную TEMPLATE_DIRS:
Код: Выделить всё
TEMPLATE_DIRS = (
## how to implement this???
)
РЕДАКТИРОВАТЬ
Я рассматриваю другой подход. Во-первых, конвертировать мои модули в динамические приложения вот так:
Код: Выделить всё
MODULES_DIR = 'system/modules'
for item in os.listdir(MODULES_DIR):
if os.path.isdir(os.path.join(MODULES_DIR, item)):
app_name = 'system.modules.%s' % item
INSTALLED_APPS += (app_name, )
А потом сделать что-нибудь, чтобы Django искал шаблоны во всех папках приложений. Но я не уверен, сработает ли это и как мне выполнить эту задачу.
Подробнее здесь:
https://stackoverflow.com/questions/326 ... plate-dirs