
jinjia2 的渲染模板,在 web 渲染 /ansible 渲染 /helm 渲染都有遇到过这个问题。 当 value 的值是 bool 类型的 false,就会变成了 defalut 过滤器的第二个参数。 是否存在避免这类问题更好的写法,不用去关心 value 的值类型通用的写法。
Hey {{ value|default "there" }} 官方的建议是
Hey {{ value |default("there", true) }}, 用if判断就可以解决 找到了,可以这么用
{{- if or .Values.myVar (not (hasKey .Values "myVar")) }} ... {{- end }} 1 ipwx 2021 年 10 月 8 日 自己写一个过滤器啊,多简单 env.filters['default2'] = lambda v, alt: ... |
2 Macv1994 2021 年 10 月 8 日 可以自己自定义一个过滤器 |
3 simple2025 2021 年 10 月 8 日 jinja 其实没有必要写过滤器呀, 他支持自己写的函数呀 直接 `{{fn_default(value, "there")}}` 不就好了码? |