Python 呈现时捕获到类型错误:';int';对象在django模板中不可编辑
我试图在for循环中迭代Python 呈现时捕获到类型错误:';int';对象在django模板中不可编辑,python,django,for-loop,django-templates,typeerror,Python,Django,For Loop,Django Templates,Typeerror,我试图在for循环中迭代列表的长度。list\u length是一个int对象,作为上下文变量传递给模板。但当我尝试这样做时,它给出了typeError。有人能帮忙吗 {% for i in list_length %} <tr> <td>{{ i }}</td> </tr> {% endfor %} {%for i in list_length%} {{i} {%endfor%} 列表本身可能是可编辑的,但单个整
列表的长度。list\u length
是一个int
对象,作为上下文变量传递给模板。但当我尝试这样做时,它给出了typeError
。有人能帮忙吗
{% for i in list_length %}
<tr>
<td>{{ i }}</td>
</tr>
{% endfor %}
{%for i in list_length%}
{{i}
{%endfor%}
列表本身可能是可编辑的,但单个整数本身不是列表
如果希望从零迭代到整数,可以使用类似Python的range(n)
为这些值创建迭代器。对于裸Python,Django似乎需要一个稍微复杂一点的方法,如图所示
否则,您可能需要遍历列表本身而不是其长度(取决于您尝试执行的操作以及是否需要循环中的列表“索引”)。我认为您正在尝试打印表中每一行的索引。为此,您必须迭代索引列表。在django视图中创建此列表
list = []
for i in range(0,list_length):
list.append(i)
然后将此列表传递到django模板中,并对其进行迭代
{% for i in list %}
<tr>
<td>{{ i }}</td>
</tr>
{% endfor %}
{list%%中的i的%
{{i}
{%endfor%}
这应该适合您。您希望如何迭代int
object?。尝试在模板中使用{{i}}
而不使用for
标记。当我尝试{%for i in range(list_length)%}
时,它给出了模板语法错误:无法解析“range(list_length)”中的剩余部分:“(list_length)”
@user3496949,这里的关键短语“like Python's range…”:-)已经更新,并带有指向另一个SO问题的链接,该问题显示了如何在Django中执行相同的操作,在这里重复该信息是没有用的。