Comments (14)
I will keep it in mind for the new compiler backend, but in the current one that is not possible to achieve for performance reasons.
from jinja.
I'd like to see this too.
from jinja.
+1
from jinja.
I would like to see this too.
I'm trying to perform simple running totals in some generated data..and that functionality is what I need.
from jinja.
+1
from jinja.
+1
from jinja.
+1
I also think that this behaviour should be unacceptable:
-
{% set first_run = True %}
{% for i in range(3) %}
- {{ i }}, {{ j }} {% endif %} {% endfor %}
-
{% for j in range(3) %}
{% if first_run %}
{% set first_run = False %}
This will output 3
The variable resets after each outer loop run, even though it was declared OUTSIDE of all loops.
I can't see how this would be expected behaviour. Is this a bug ?
from jinja.
+1
I also think that this behaviour should be unacceptable:
<ul>
{% set first_run = True %}
{% for i in range(3) %}
<ul>
{% for j in range(3) %}
{% if first_run %}
{% set first_run = False %}
<li>{{ i }}, {{ j }}</li>
{% endif %}
{% endfor %}
</ul>
{% endfor %}
</ul>
This will output 3 <li>
tags, but it should output only one.
The variable resets after each outer loop run, even though it was declared OUTSIDE of all loops.
I can't see how this would be expected behaviour. Is this a bug ?
from jinja.
+1
from jinja.
This would very useful when templating JSON files. +1
from jinja.
+1
from jinja.
Me too, could really use an override and it'd be great if the template designer docs explicitly mentioned this behavior!
I had to work with some data in an (admittedly horrible) format and was puzzled at why the followed pre-pass didn't work...
{% set last_one = none %}
{% for row in rows %}
{% set last_one = row.field %}
{% endfor %}
I agree with @ruiposse's comment that having a variable first set outside all loops reset itself inside them is very unexpected.
from jinja.
+1
from jinja.
I'm going to close this. This cannot work in all cases in Jinja2 and I do not really wish on supporting it.
from jinja.
Related Issues (20)
- test_striptags regressed with markupsafe 2.1.4 HOT 1
- Is it not possible to utilize a test adorned with the @pass_context decorator in the select function?
- add sort_keys argument to `tojson` filter HOT 2
- `tojson` always do autoescape HOT 2
- Native types in macros works for list but does not work for int HOT 2
- Template globals not visible in {% import %}'ed file when it's {% include %}'ed by another file HOT 2
- Flake8 error B036 reported by updated flake8-bugbear version HOT 1
- urlize support for quotes
- A loader was not found
- filters.map: apply filter to attribute ("mapattr")
- Template.render changelog is documented as using asyncio.run but does not
- no way to explicitly shutdown async generators HOT 1
- generate_async type annotation does not support `.aclose()`
- root_render_func not properly aclosed in Template.generate_async
- Jinja strips trailing newline
- Allow to customize some behaviors of Lexer, so that Extension instances get can the raw block begin and end info.
- Optional literal eval on native environments HOT 1
- Option to preserve comments in the AST HOT 2
- refactor `PackageLoader` to use `importlib.resources` HOT 1
- Type annotation wrong on TemplateStream.dump? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jinja.