我正在做类似
的事情{% 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 }}_"
字面上传递。
任何相对优雅的解决方案?
答案 0 :(得分:3)
我认为最好的解决方案是注册一个include_tag,它将处理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 %}