与simple_tag的返回值进行比较

时间:2017-09-15 04:04:00

标签: django django-templates

我正在使用simple_tag来计算django模板中的值。我目前的代码看起来像,

{% for param_a in params_A %}
  {% for param_b in params_B %}
    <p>{% awesome_tag param_a param_b %}</p>
    # other_stuffs
  {% endfor %}
{% endfor %}

现在,如果other_stuffs返回的值为awesome_tag,我想跳过foo。 我知道我可以在视图中执行此操作,然后在上下文中传递项目,但我想知道是否有更好的Django模板方法来执行此操作。

1 个答案:

答案 0 :(得分:1)

您可以将 assignment_tag 用于此目的,并将return存储在某个变量中,并在模板中检查该变量。

{% for param_a in params_A %}
  {% for param_b in params_B %}
    <p>{% awesome_tag param_a param_b as result%}</p>

    {% if result != "foo" %}
    # other_stuffs
    {% endif %}

  {% endfor %}
{% endfor %}

<强>更新

  

assignment_tag已弃用,因为版本1.9 simple_tag现在可以存储   导致模板变量,应该使用。