I want to cast an int that\'s passed to the template through the url, but it says that the str function isn\'t defined.
How do I get around this?
<Jinja2 also defines the ~ operator, which automatically converts arguments to string first, as an alternative to the + operator.
Example:
{% set p = year ~ '/' ~ month ~ '/' ~ day ~ '/' ~ post.slug %}
See Other operators or, if you really want to use str, modify the Environment.globals dictionary.
To cast to a string in an expression, you use x|string() instead of str(x).
string() is an example of a filter, and there are several useful filters that it's worth learning about.
You may use join:
{% set p = (year, month, day, post.slug)|join("/") %}