I want to point to a different HTML files based on a variable. I am using include in the following format:
{% include 'templates/case/{{cid}}/intro.html' %}
This throws an error:
TemplateNotFound: templates/case/{{cid}}/intro.html
Looking at this I know Jinja2 does not resolve the variable at runtime. The value of cid = ABC
(ABC is a folder's name in the path), so I expected the total path to be:
templates/case/ABC/intro.html
If I use this resolved path directly in include it works.
How can I resolve this?
You could always compute the full path in view code and pass that down to the template, at that point, remove any quotes and curly braces around the variable.
While doing this, be wary of path traversal attacks.
At least in Jinja2 2.7.1 this works:
Here's how to pass the code directly through include
Found the answer in another Stack Overflow question here: