4
我目前在多個不同的子目錄中有模板,我想加載jinja2中的所有模板。看起來,只是指向樹頂部的FileSystemLoader目錄不會在子文件夾中找到任何東西。jinja2文件系統加載器加載所有子目錄
有沒有辦法讓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))
然而,這似乎有點哈克。有更好的建議嗎?
我有同樣的問題OP可能一直在試圖解決當模板具有'import'(或可能'extends' )相對於它自己。 – OJFord 2016-07-11 14:53:11