gpt4 book ai didi

python - 有条件地应用jinja2过滤器

转载 作者:行者123 更新时间:2023-12-04 08:17:54 25 4
gpt4 key购买 nike

我想有条件地将过滤器应用于一段文本。例如:

{% filter upper %}
some text
{% endfilter %}
更改为:
{% filter upper if X == 1 %}
some text
{% endfilter %}
也许这是不可能的,解决方案是 if/else 语句。然后“某些文本”将重复两次,一次用于“if”,一次用于“else”。在一个小例子中这很好。但是如果文本很长并且包含变量怎么办?因此,下一个选择是将“一些文本”移动到宏中。同样,如果文本包含许多变量,则必须为宏设置所有参数,这会变得更加复杂。也许这些是唯一的选择。有没有办法简洁地结合条件和过滤器?

最佳答案

您可以使用自定义逻辑移动过滤器中的逻辑:
过滤器定义:

def custom_upper(text, X):
if X == 1:
return text.upper()
return text

environment.filters['custom_upper'] = custom_upper
模板:
{% filter custom_upper(X) %}
some text
{% endfilter %}
https://jinja.palletsprojects.com/en/2.11.x/api/#writing-filters

关于python - 有条件地应用jinja2过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65631708/

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