如何最有效地为 Jinja2 编写适用于可迭代对象(如内置“排序”过滤器)的自定义过滤器,以便在模板中的 for 循环中使用?
例如:
{% for item in iterable|customsort(somearg) %}
...
{% endfor %}
最佳答案
与您编写任何其他过滤器的方式相同。下面是一个可以帮助您入门的示例:
from jinja2 import Environment, Undefined
def custom_sort(iterable, somearg):
if iterable is None or isinstance(iterable, Undefined):
return iterable
# Do custom sorting of iterable here
return iterable
# ...
env = Environment()
env.filters['customsort'] = custom_sort
在效率成为问题之前,不要担心效率。在任何情况下,模板引擎都不太可能成为瓶颈。
关于python - 迭代器的自定义 jinja2 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5481205/