Django 模板 - 新变量声明

13 投票
4 回答
29991 浏览
提问于 2025-04-15 11:05

让我先说一下,我刚开始学习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。

4 个回答

3

这是实现这个功能的方法:

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

另外可以参考:with标签

johnyarden 提供,来自这个帖子: 如何在模板代码中设置变量的值?

6

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

21

可以查看一下关于 for 循环的 文档

它会自动创建一个叫 forloop.counter 的变量,这个变量用来表示当前的循环次数。

至于如何声明变量的问题,Django 并没有提供现成的方法来做到这一点,这并不是一个缺失的功能,而是它的设计理念。如果你真的想这么做,可以通过 自定义标签 来实现,但大多数情况下,建议遵循的原则是:你想做的事情大部分应该在视图中处理,而模板主要用于简单的逻辑。例如,如果你想计算总和,可以使用 add 过滤器。同样,你也可以像创建标签一样 创建自己的过滤器

撰写回答