1

我想在 for 循环中创建一系列变量,例如 name0、name1、...。我该怎么做?谢谢。

    {% for i in '1234567890' %}
        {% if name{{forloop.counter0}} %}
        ...
        {% endif %}
        ...
        {{name{{forloop.counter0}}}}
        ...
    {% endfor %}
4

2 回答 2

2

很简单

{{ name }}{{ forloop.counter0 }}

对于 if,您应该使用“with”语句:

{% with name|add:forloop.counter0 as if_test %}
{% if if_test %}
... <!-- do whatever you need to do here -->

所有这些都必须在你的 for 循环中

于 2012-11-30T16:32:23.777 回答
1

如您所见,Django 模板语言努力阻止您做您想做的事情,鼓励您在视图代码中而不是模板中进行数据处理。对于您的示例,在您的视图代码中,您可以尝试执行以下操作:

context['names'] = [name for name in names[:10]]

...而不是为每个名称创建单独的变量。

然后在您的模板中:

{% for name in names %}
    {% if name %}
    ...
    {% endif %}
    ...
    {{name}}
    ...
{% endfor %}

据我所知,这与您的代码具有相同的效果,但是您将在视图中而不是模板中聚合名称。如果我错误地阅读了您的代码意图,请提供更多上下文,但您似乎没有做任何需要模板逻辑的事情。

于 2012-11-30T22:50:39.900 回答