Django模板 - 将变量comap为整数常量

时间:2016-07-22 16:53:22

标签: django templates

看起来像基本问题,但却无法使其发挥作用

{% if iterator.next > 10 %}
    Do smth
{% endif %}

两个问题。首先,这段代码刚刚工作(if条件中的代码从未实现,即使条件似乎成立),第二个问题 - ">"标记突出显示,就好像它是最近的开放标记的结束标记。任何想法如何解决第一个问题,第二个问题是否可以?也许有一些我缺少的优雅语法,这会消除文本编辑器的这种歧义?

2 个答案:

答案 0 :(得分:1)

iterator.next可能是一个字符串,导致语句为False。

尝试创建自定义过滤器以将其转换为int。例如,创建" my_filters.py":

{% load my_filters %}
{% if iterator.next|to_int > 10 %}
   Do smth
{% endif %}

然后在你的模板中:

breakfast.setAnimation(shake);

有关自定义标记和过滤器的更多信息here

我不担心突出显示,这可能只是你的IDE。我建议使用PyCharm进行Django开发

答案 1 :(得分:-1)

Django的文档说你可以使用> if标签:

{% if somevar < 100 %}
  This appears if variable somevar is less than 100.
{% endif %}

查看文档:{​​{3}}

也许你错过了别的什么?