如何在django模板中选择或赋值变量?

时间:2016-03-26 17:08:03

标签: python django django-templates

我有一个模板:

{% if c == 2 %}
    {% for time in a %}
        code(1)
    {% endfor %}
{% else %}
    {% for time in b %}
        repeat of code(1)
    {% endfor %}
{% endif %}

正如您所看到的,此代码具有重复部分。我想像这样重构:

{% if c == 2 %}
    var = a
{% else %}
    var = b
{% endif %}
{% for time in var %}
    code(1)
{% endfor %}

怎么做?

1 个答案:

答案 0 :(得分:3)

不要在模板中这样做(我认为你不能),而是在views.py中这样做:

var = c if c == 2 else b
# add to template context
context['var'] = var

如果你在模板中添加太多逻辑,人们必须查看这两个地方以找出正在发生的事情。但是如果你在views.py中拥有所有逻辑,它就会更清楚。