Динамический TEMPLATE_DIRSPython

Программы на Python
Ответить
Anonymous
 Динамический TEMPLATE_DIRS

Сообщение Anonymous »

Я хочу иметь динамические каталоги, в которых будут находиться шаблоны. Позвольте мне объяснить, что я имею в виду. У меня есть система приложений, имеющая такую ​​файловую структуру:

Код: Выделить всё

\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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»