У меня есть шаблоны в нескольких разных подкаталогах, и я хотел бы загрузить все шаблоны в jinja2. Похоже, что просто указание каталога FileSystemLoader в верхней части дерева не подбирает ничего в подпапках.jinja2 filesystemloader загрузить все подкаталоги
Есть ли способ получить jinja2 для загрузки всех подкаталогов (только один уровень вниз в порядке, но желательно, чтобы все дерево было предпочтительным)?
До сих пор мне удалось сделать это с помощью выбора загрузчика:
sub_dirs = [os.path.join(template_file_root,dirname) for dirname in os.listdir(template_file_root)
\ if os.path.isdir(os.path.join(template_file_root, dirname))]
jinja_dirs = [ jinja2.FileSystemLoader(dirname) for dirname in sub_dirs ]
template_env = jinja2.Environment (loader = jinja2.ChoiceLoader(jinja_dirs))
Однако это кажется немного Hacky. Любые лучшие предложения?
У меня такая же проблема, ОП, возможно, пытается решить, когда шаблон имеет 'import' (или предположительно' extends'), что относительно самого себя. – OJFord