我想在for循环中创建一系列变量,例如name0,name1,....我该怎么做?感谢。
{% for i in '1234567890' %}
{% if name{{forloop.counter0}} %}
...
{% endif %}
...
{{name{{forloop.counter0}}}}
...
{% endfor %}
答案 0 :(得分: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循环中
答案 1 :(得分:1)
正如您所看到的,Django模板语言会努力阻止您执行您尝试执行的操作,鼓励您在视图代码中执行数据处理,而不是模板。对于您的示例,您可以尝试在视图代码中执行以下操作:
context['names'] = [name for name in names[:10]]
...而不是为每个名称创建单独的变量。
然后在你的模板中:
{% for name in names %}
{% if name %}
...
{% endif %}
...
{{name}}
...
{% endfor %}
据我所知,这将与您的代码具有相同的效果,但您将在视图中对名称进行聚合,而不是模板。如果我错误地阅读了您的代码的意图,请提供更多上下文,但似乎您没有做任何需要模板逻辑的事情。