4
私は現在、複数の異なるサブディレクトリにテンプレートを持っており、すべてのテンプレートをjinja2にロードしたいと思います。ツリーの一番上にあるFileSystemLoaderディレクトリを指し示すだけでは、サブフォルダ内のすべてのファイルが取得されないようです。jinja2 filesystemloaderすべてのサブディレクトリをロード
jinja2にすべてのサブディレクトリをロードさせる方法はありますか?(単一のレベルダウンだけはOKですが、ツリー全体が優先されます)
これまでのところ、私は選択肢ローダーでこれを行うことができた:
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))
しかし、これは少しハックようです。より良い提案はありますか?
私はテンプレートが 'import'(またはおそらく' extends'を持っているときに、同じ問題のOPが解決しようとしてきたことが持っています)それ自体に相対的です。 – OJFord