2016-07-22 116 views
0

好像基本的问题,但不能得到它的工作Django模板 - comapring变量整型常量

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

两个问题。首先,这段代码不起作用(if条件中的代码从未实现,即使条件似乎保持为真),第二个问题 - 突出显示“>”符号,就好像其中最接近的标签打开标签。任何想法如何解决第一个问题,是否可以解决第二个问题?也许有一些我错过的优雅语法,这将消除文本编辑器的这种模糊性?

+0

也许[自定义模板标记/过滤器](https://docs.djangoproject.com/en/1.9/howto/custom-template-tags/#custom-template-tags-and - 过滤器)的帮助。 – Gocht

+0

请问您能更具体些吗?) –

+0

什么是'iterator'? –

回答

1

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

尝试创建一个自定义过滤器将其转换为int。例如创建 “my_filters.py”:

# templatetags/my_filters.py 
from django import template 

register = template.Library() 

@register.filter() 
def to_int(value): 
    return int(value) 

然后在你的模板:

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

更多关于自定义标签和过滤器here

我就不会担心高亮,这可能只是你的IDE。我建议使用PyCharm进行Django开发

+0

很好的答案,谢谢你) –