gpt4 book ai didi

python - lambda 作为 jinja2 过滤器的参数?

转载 作者:太空狗 更新时间:2023-10-29 17:31:09 31 4
gpt4 key购买 nike

我想在 jinja2 中有一个像这样的自定义过滤器:

{{ my_list|my_real_map_filter(lambda i: i.something.else)|some_other_filter }}

但是当我实现它时,我得到了这个错误:

TemplateSyntaxError: expected token ',', got 'i'

jinja2 的语法似乎不允许 lambda 作为参数?有什么好的解决方法吗?现在,我在 python 中创建 lambda,然后将其作为变量传递给模板,但我更希望能够在模板中创建它。

最佳答案

不可以,你不能通过通用的 Python 表达式在 Jinja2 模板中进行过滤

混淆来自于 jinja2 模板在许多方面与 Python 语法相似,但您应将其视为具有完全独立语法的代码。

Jinja2 有严格的规则,在模板的哪一部分可以期望什么,它通常不允许原样的 python 代码,它期望精确类型的表达式,这是非常有限的。

这符合理念,presentation和model要分离,template不能有太多的逻辑。无论如何,与许多其他模板选项相比,Jinja2 是相当允许的,并且允许在模板中使用相当多的逻辑。

关于python - lambda 作为 jinja2 过滤器的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24310543/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com