Goal
- JinjaのIncludeブロックで指定するファイル名を変数で指定する
Includeブロック内では、Jinjaの構文では変数が展開されず、文字列として認識されてしまう。
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        {% include "{{ variable }}" %} <!-- これだと Template not found error となってしまう-->
  </body>
</html>
Environment
- Jinja 3.1.2
Resolve
Jinja2 2.7.1 以降では、下記で展開可能。
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        {% include "%s" % variable %}
        {% include "/files/%s" % variable %}
  </body>
</html>
Jinja2 2.7.1 以前でも、理論上は下記で回避可能。
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        {% include "templates/case/"+variable+"/intro.html" %}
        {% include "/files/"+cid %}
  </body>
</html>
Reference
