В настоящее время у меня есть шаблоны в нескольких разных подкаталогах, и я хотел бы загрузить все шаблоны в 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))
Однако это кажется немного хакерским. Есть предложения получше?