渲染时捕获类型错误:'int' 对象在 Django 模板中不可迭代

Caught TypeError while rendering: 'int' object is not iterable in django template

我试图在 for 循环中迭代 list_lengthlist_length 是一个 int 对象,它作为上下文变量传递给模板。但是当我尝试这样做时,它给出了 typeError。有人可以帮忙吗?

{% for i in list_length %}
    <tr>
        <td>{{ i }}</td>
    </tr>
{% endfor %}

list 本身可能是可迭代的,但单个整数本身不是 列表。

如果你想从零迭代到一个整数,你可以使用类似 Python 的 range(n)create 的迭代器值。那是裸体 Python,根据 Numeric for loop in Django templates.

,Django 似乎需要稍微复杂的方法

否则,您可能需要遍历列表本身而不是其长度(取决于您要执行的操作以及循环中是否需要列表 'index')。

我认为您正在尝试打印 table 中每一行的索引。为此,您必须遍历索引列表。在您的 Django 视图中创建此列表

list = []
for i in range(0,list_length):
    list.append(i)

然后将此列表传递到您的 Django 模板中并对其进行迭代

{% for i in list %}
    <tr>
        <td>{{ i }}</td>
    </tr>
{% endfor %}

这应该适合你。