我希望能够拥有模板所在的动态目录。让我解释一下我的意思。我有一个具有这种文件结构的应用程序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
有一个带有tempaltes的模板文件夹,module_2
有一个模板文件夹,所有其他模块都有自己的模板文件夹。我想要的是能够在我的settings.py
文件中引用这些模板文件夹,这样当我将一个全新的模块上传到模块文件夹时,我就不必更改这个settings.py
文件了。所以我的问题是,如何动态构建TEMPLATE_DIRS
变量:
TEMPLATE_DIRS = (
## how to implement this???
)
修改
我在考虑另一种方法。首先,将我的模块转换为dinamic应用程序,如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在所有应用程序的文件夹中查找模板。但我不确定它是否有效,我怎样才能完成这项任务。