我想写一些只能渲染一些东西的模板。
我的想法是创建标志变量,以便第一次检查它吗?
我的代码
{% with "true" as data %}
{% if data == "true" %}
//do somethings
** set data to "false" **
{% else %}
//do somethings
{% endif %}
{% endwith %}
我不知道如何在django模板中更改变量?(有可能吗?)
或者
更好的方法。
谢谢
答案 0 :(得分:6)
这可以使用Django自定义过滤器
完成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 %}