【发布时间】:2015-12-17 06:45:59
【问题描述】:
我希望能够拥有模板所在的动态目录。让我解释一下我的意思。我有一个应用程序system,它有这样一个文件结构:
\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
...
如您所见,有一个modules 文件夹,其中包含“原子”模块,原子在某种意义上说它们具有所有必要的文件,包括一个地方的模板。所以module_1 有一个带有模板的模板文件夹,module_2 有一个模板文件夹,所有其他模块都有自己的模板文件夹。我想要的是能够在我的settings.py 文件中引用这些模板文件夹,这样当我将一个全新的模块上传到模块文件夹时,我就不必更改这个settings.py 文件。所以我的问题是,如何动态构建TEMPLATE_DIRS 变量:
TEMPLATE_DIRS = (
## how to implement this???
)
编辑
我正在考虑另一种方法。首先,将我的模块转换为动态应用程序,例如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 在所有应用程序的文件夹中查找模板。但我不确定它是否会起作用以及我该如何完成这项任务。
【问题讨论】: