我想在 for 循环中创建一系列变量,例如 name0、name1、...。我该怎么做?谢谢。
{% for i in '1234567890' %}
{% if name{{forloop.counter0}} %}
...
{% endif %}
...
{{name{{forloop.counter0}}}}
...
{% endfor %}
很简单
{{ name }}{{ forloop.counter0 }}
对于 if,您应该使用“with”语句:
{% with name|add:forloop.counter0 as if_test %}
{% if if_test %}
... <!-- do whatever you need to do here -->
所有这些都必须在你的 for 循环中
如您所见,Django 模板语言努力阻止您做您想做的事情,鼓励您在视图代码中而不是模板中进行数据处理。对于您的示例,在您的视图代码中,您可以尝试执行以下操作:
context['names'] = [name for name in names[:10]]
...而不是为每个名称创建单独的变量。
然后在您的模板中:
{% for name in names %}
{% if name %}
...
{% endif %}
...
{{name}}
...
{% endfor %}
据我所知,这与您的代码具有相同的效果,但是您将在视图中而不是模板中聚合名称。如果我错误地阅读了您的代码意图,请提供更多上下文,但您似乎没有做任何需要模板逻辑的事情。