gpt4 book ai didi

django - 获取 django 从 TEMPLATE_LOADERS 和 TEMPLATE_DIRS 检测到的所有模板

转载 作者:行者123 更新时间:2023-12-03 03:53:23 27 4
gpt4 key购买 nike

TEMPLATE_DIRS = ('/path/to/templates/',)

TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)

我正在尝试寻找一种解决方案,在这些位置(TEMPLATE_DIRSTEMPLATE_LOADERS)中列出我指定目录的内容。

我需要类似的东西:

template_files = []
for dir in EVERY_DIRECTORY_DJANGO_LOOKS_FOR_TEMPLATES_IN:
template_files.append(os.listdir(dir))

最佳答案

如果有人仍然需要这个,我正在运行 1.9.2,它看起来像app_template_dirs 现在是 get_app_template_dirssettings.TEMPLATE_DIRS 现在是 settings.TEMPLATES[0]['DIRS']

这就是我所做的:

from django.conf import settings
from django.template.loaders.app_directories import get_app_template_dirs
import os

template_dir_list = []
for template_dir in get_app_template_dirs('templates'):
if settings.ROOT_DIR in template_dir:
template_dir_list.append(template_dir)


template_list = []
for template_dir in (template_dir_list + settings.TEMPLATES[0]['DIRS']):
for base_dir, dirnames, filenames in os.walk(template_dir):
for filename in filenames:
template_list.append(os.path.join(base_dir, filename))

然后您可以根据需要使用 template_list 迭代列表:

for template in template_list:
print template

关于django - 获取 django 从 TEMPLATE_LOADERS 和 TEMPLATE_DIRS 检测到的所有模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17111822/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com