Django {%if custom_template_tag> 0%}不起作用

时间:2016-09-12 18:38:52

标签: django django-templates

我有这些模板标签

@register.assignment_tag
def test1():
    return 2

@register.simple_tag
def test2():
    return 2

在我的模板中,我有了这个

{% test1 as test1_var %}    
{% if test1_var > 0 %}Test1{% endif %}

{% if test2 > 0 %}Test2{% endif %}

结果     TEST1

我想要的是一个模板标签,只有当它大于0时才出现,但我不相信assignment_tag是正确的解决方案。为什么Test2不起作用?

1 个答案:

答案 0 :(得分:1)

test2语句中的if实际上并未调用模板标记;它只能引用(不存在的)上下文变量。这就是赋值标签的工作原理,因为你确实设置了这样一个变量。

如果您不喜欢赋值标记,可以考虑在标记内进行整个比较,以便直接输出Test1 / Test2值。