django模块不能用for i in range(0, 5)总报错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django模块不能用for i in range(0, 5)总报错相关的知识,希望对你有一定的参考价值。
我觉得你的目的很简单,就是想在模版中简单执行5次循环。可以使用make_list过滤器:
% for i in '12345'|make_list %i
% endfor %
如果觉得这样有局限性,可以写一个简单的自定义过滤器:
@register.filter('list')def do_list(value):
return range(1, value+1)
然后这样使用:
% for i in 5|list %i
% endfor %
如果你已经在视图中定义了好了一个变量,而只想执行5次,那么可以这样子:
i
% endfor %追问
有办法使一个变量在里面自增么?例如一个page=0,在遍历list时,每遍历一次就自增一次
追答模板本身提供的过滤器和标签似乎无法改变变量的值,这些应该在视图或者model中想办法才是呀。
参考技术A 在view.py函数中定义,在html中直接调用!!! 参考技术B range 和 django 没有什么关系。。。你具体说说你是怎么用的?追问我想循环遍历model查找到的对象。。。次数是自定的
追答可否把相关的几行代码贴出来?
追问贴了
追答囧! 你这是在html里啊? html里不支持 range 。
你可以这样: data=[0,1,2,3,4]
%for i in data%
i
%endfor%
那么要怎么在html里的模板中设置变量 我要取值啊。。。不会没有吧
追答你要取什么值? models查询到的对象?
比如: userList=User.objects.all()
那么在后台return的时候带上这个 userList 。
然后在html里:
%for user in userList%
user.username
%endfor%
我要根据它迭代的次数来查找单独的数据,因为有其他实现所以不能用id
参考技术C 提示什么错误 ?追问html里的模板能设置 根据迭代次数 自增的变量么
python中的for i in range怎么用?
假如for i in range(x, y,z) 括号中有三个而不是两个数字,那么这三个数字代表那些数呢?
第一个是开始值,第二个结束值,第三个是步长,默认为1,比如:
>>> for i in range(3, 13, 3):... print i
...
3
6
9
12
>>>
如果解决了您的问题请采纳!
如果未解决请继续追问
for循环语句是Python中的一个循环控制语句,任何有序的序列对象内的元素都可以遍历,比如字符串、列表、元组等可迭代对象。
Python中for循环的一般格式:第一行是要先定义一个赋值目标(迭代变量),和要遍历(迭代)的对像;首行后面是要执行的语句块。
print 赋值目标
Python2.x中range()函数会返回一个列表,返回的对象便可以用for循环进行遍历。下面的例子中,for循环对range()返回的列表进行遍历并打印。
print i,
# 1 2 3 4
以上是关于django模块不能用for i in range(0, 5)总报错的主要内容,如果未能解决你的问题,请参考以下文章
python中for i in range(0, 3.0 , 0.1)为啥错?