{{ d.text }}

Django模板 - 新的变量声明

26257 观看

4回复

2180 作者的声誉

让我先写一下我刚开始使用Python,如果这真的是一个简单的问题^ _ ^

我有一个包含以下内容的html文件:

        {%for d in results%}
        <div class="twt">
            <img src="{{ d.profile_image_url }}" width="48px" height="48px" /> <span> {{ d.text }} </span>
            <span class="date">{{ d.created_at }}</span>
        </div>
    {% endfor %}

哪个效果很好,但我也想在这个页面上声明一个变量。让我们说这个例子,我们可以使用RowNumber,它将为显示的每个d递增,吐出当前的RowNumber。

我试过做:

{{ RowNumber = 0}} 
{{ RowNumber ++ }}

但它似乎不允许我声明RowNumber。

作者: TimLeung 的来源 发布者: 2009 年 4 月 5 日

回应 (4)


20

395190 作者的声誉

决定

退房的文件for循环。

它会自动创建一个名为的变量forloop.counter来保存当前的迭代索引。

关于如何声明变量的更大问题,没有开箱即用的方法来使用Django,并且它不被认为是缺少的功能而是功能。如果您真的想要这样做,可以使用自定义标签,但在大多数情况下,您想要遵循的理念是,您希望这样做的任何事情都应该在视图中完成,模板应该保留用于非常简单的逻辑。例如,对于总计总计的示例,您可以使用添加过滤器。同样,您可以像标记一样创建自己的过滤器

作者: Paolo Bergantino 发布者: 05.04.2009 03:38

7

4943 作者的声誉

如果你想在Django模板中设置任何变量,你可以使用我写的这个小模板标签

作者: Nicu Surdu 发布者: 18.02.2011 10:38

2

21 作者的声誉

在模板中:

{% for outer_obj in outer_list %}
    {% for inner_obj in inner_list %}
         {% increment_counter forloop.counter0 forloop.parentloop.counter0 outer_list.count %}
    {% endfor %}
 {% endfor %}

Templatetag:

@register.simple_tag
def increment_counter(outer, inner, outer_loop_length):
    return outer + inner * outer_loop_length + inner * (outer_loop_length - 1)

结果:0 1 2 3 ...

作者: cheslavv 发布者: 14.11.2011 08:51

3

88 作者的声誉

这是怎么做的:

{% with name="World" greeting="Hello" %}     
<html>
<div>{{ greeting }} {{name}}!</div>
</html>
{% endwith %}

另见:带标签

来自这篇文章的johnyarden如何在模板代码中设置变量的值?

作者: Gregory Beyer 发布者: 13.10.2013 06:43
32x32