目的是检查变量是否为整数,如果为真则插入 hello。
尝试
{% if int(variable) %} hello {% endif %}
结果
'int' is undefined"
最佳答案
使用 Jinja2 int
内置过滤器(尝试将值转换为 int):
您需要使用过滤器格式,如下所示:
{% if variable|int != 0 %} hello {% endif %}
默认情况下,如果转换为 int 失败,则返回 0,但您可以通过将不同的默认值指定为第一个参数来更改此设置。在这里,对于 0 可能是
variable
的有效值的情况,我已将其更改为 -1。 .{% if variable|int(-1) != -1 %} hello {% endif %}
见:Jinja2 Docs - int builtin filter欲了解更多信息
使用 Jinja2
number
内置测试(如果变量已经是数字,则返回 true):更好的解决方案,而不是使用
int
过滤器(它将像字符串一样的整数转换为整数)是使用内置测试 number
, 像这样:{% if variable is number %} hello {% endif %}
见:Jinja2 Docs - number builtin test
关于jinja2 - 如何在 Jinja2 中检查变量是否为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41743796/