渲染时捕获TypeError:' int'对象在django模板中不可迭代

时间:2015-06-24 05:23:52

标签: python django for-loop django-templates typeerror

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

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

2 个答案:

答案 0 :(得分:2)

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

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

然后在你的django模板中传递这个列表并迭代它

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

这应该适合你。

答案 1 :(得分:0)

列表本身可以是可迭代的,但是单个整数本身就是而不是列表。

如果要从零迭代到整数,可以使用类似Python的range(n)创建这些值的迭代器。这是针对裸体Python的,根据Numeric for loop in Django templates,Django似乎需要稍微复杂一些的方法。

否则,您可能需要迭代列表本身而不是其长度(取决于您尝试执行的操作以及是否需要循环中的列表'索引')。