I have code similar to the following in one of my jinja template
{% for post in posts %}
{% include ["posts/" + post.type + ".html", "posts/default.html"] %}
{% endfor %}
which is supposed to render each post
inside the posts
collection, depending on the .type
of the post. I have a different template setup for each post.type
. And for those I don't have a template, it reverts to the default
post template.
Now, I want the index of the post being displayed from bottom, inside the post templates, which is provided by loop.revindex
. But for some reason, if I use loop.revindex
inside the post template, I get a error saying UndefinedError: 'loop' is undefined
.
So, is loop
not available in the include
d templates? Is this by design? Am I doing something wrong with how I organised my templates for this to be not available?
Edit Okay, I came up with a workaround, in the for loop, before I include my template, I do
{% set post_index = loop.revindex %}
and use post_index
inside the post template. Not ideal, but seems like the only way. I still want to know your solutions though.
Edit 2 One other thing, I am able to access the post
variable inside the include
d template, but not the loop
variable.
If might be possible with the
{% with %}
statement.Try this:
Instead of using
loop.revindex
in the included template, useloop_revindex
.