Django模板:为什么变量名称评估为字符串

时间:2013-05-30 06:19:40

标签: django

turl1turl2 ... ourl1ourl2是我从视图中返回的上下文变量(所有字符串)。

    {% for i in "1234" %}
    <div class="spot">
        {% with t="turl"|add:i %}
        {% with o="ourl"|add:i %}
            <a href= {{ o }}">
                <img src={{ t }}>
            </a>
        {% endwith %}
        {% endwith %}
    </div>
    {% endfor %}

现在我得到了这个:

<a href="ourl1">
    <img src="turl1">
</a>
...

虽然ourl1turl1应评估为网址,但事实并非如此。

2 个答案:

答案 0 :(得分:1)

您应该删除行中的引号:

{% with t=turl1 %}
{% with o=ourl1 %}

如果要迭代它,则应从视图中传入两个数组。

{'urls': [[turl1, ourl1], [turl2, ourl2]]}

然后在模板中迭代它:

{% for t, o in urls %}
     <a href="{{ o }}">
         <img src="{{ t }}"/>
     </a>
{% endfor %}

答案 1 :(得分:0)

如果turl1, turl2...ourl1, ourl2是上下文变量,那么在django模板中,您需要将它们放在{ ... }

之间