Skip to content

Add 'flip' filter #61

@flexferrum

Description

@flexferrum

According to this pull request: pallets/jinja#906

Applies a filter with arguments flipped in reverse order.
This becomes useful with filters like map where you can't easily re-order
the arguments yourself.
Example 1:
Say you have a list of names and you want to prefix them all with "Name: "
you could do it like this:
.. sourcecode:: jinja
{{ ["Carl", "Jane"] | map("flip", "format", "Name: %s") | join(",") }}
This would give you back:
Name: Carl, Name: Jane
Example 2:
Say you have a User object like below:
.. sourcecode:: python
class User(object):
def init(self, name, surname, age):
self.name = name
self.surname = surname
self.age = age
user = User('john', 'doe', 31)
... and you want to extract a couple of attribute values from it as a list
and process that.
This is one way to do that:
.. sourcecode:: jinja
{{ ['surname', 'name']
| map("flip", "attr", user)
| map("capitalize")
| join(", ")
}}
This would give you back
Doe, John

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions