我正在做类似的事情
{% for part in parts %}
{% include "inc.html" with o=part prefix="part{{ forloop.counter0 }}_" %}
{% endfor %}
哪里
inc.html
可能是这样的:<p id="{{ prefix }}para">{{ o.text }}</p>
我刚刚发现前缀变量没有内插和
"part{{ forloop.counter0 }}_"
是按字面传递的。任何相对优雅的解决方法?
最佳答案
我认为最好的解决方案是注册一个包含标签,它将处理 part 和 forloop.counter 操作:
@register.inclusion_tag("inc.html")
def inc_tag(part, loop_counter):
prefix = 'part%s_' % (loop_counter,)
context = {
'part': part,
'prefix': prefix,
}
return context
你会这样称呼它
{% for part in parts %}
{% inc_tag part=part loop_counter=forloop.counter0 %}
{% endfor %}
你的方式也是可行的,但我不建议这样做
{% for part in parts %}
{% with "part"|add:forloop.counter0|add:"_" as prefx %}
{% include "inc.html" with o=part prefix=prefix %}
{% endwith %}
{% endfor %}
关于django - 插入 Django 模板包含变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7574323/