django可以修改模板中的变量值吗?

时间:2015-08-10 09:48:02

标签: django django-templates

我想写一些只能渲染一些东西的模板。

我的想法是创建标志变量,以便第一次检查它吗?

我的代码

{% with "true" as data %}
    {% if data == "true" %}
        //do somethings
        ** set data to "false" **
    {% else %}
        //do somethings
    {% endif %}
{% endwith %}

我不知道如何在django模板中更改变量?(有可能吗?)

或者

更好的方法。

谢谢

2 个答案:

答案 0 :(得分:6)

这可以使用Django自定义过滤器

完成

django custom filter

def update_variable(value):
    data = value
    return data

register.filter('update_variable', update_variable)

{% with "true" as data %}
    {% if data == "true" %}
        //do somethings
        {{update_variable|value_that_you_want}}
    {% else %}
        //do somethings
    {% endif %}
{% endwith %}

答案 1 :(得分:0)

NIKHIL RANE的回答对我不起作用。自定义simple_tag()可用于完成工作:

@register.simple_tag
def update_variable(value):
    """Allows to update existing variable in template"""
    return value

然后像这样使用它:

{% with True as flag %}
    {% if flag %}
        //do somethings
        {% update_variable False as flag %}
    {% else %}
        //do somethings
    {% endif %}
{% endwith %}