【问题标题】:Django Looping x times within a template [duplicate]Django在模板中循环x次[重复]
【发布时间】:2013-04-16 22:48:06
【问题描述】:

如何在模板中简单地循环 x 次 (Django)?

我知道,当我遍历一个列表时,我可以做...

{% for i in list %}

但我有一个名为 'count_val' 的变量,我想做的就是循环 count_val 的值...

有人可以帮助完成以下工作吗...

count_val = 5
{{ loop count_val }}
   I'm {{ forloop.counter }}!

{{ endfor }}

谢谢

【问题讨论】:

  • 我的错,我确实搜索了哎呀。整个 forloop.counter 怎么样?
  • {% for i in range(my_count) %} 对吗?我得到 int' 对象不可迭代
  • 如果循环限制是恒定的,您可以使用{% for i in "12345" %},但如果循环限制是变量,则没有内置方法可以执行此操作,因此您必须使用自定义模板标签或过滤器。有关示例,请参阅Numeric for loop in Django templates 问题的第一个答案。
  • 真的吗?我目前看到的方式是我可以从数字 1、2、3 等创建一个列表,然后执行 for 循环。但这似乎很疯狂,对吧?
  • 好吧,您可以将range(count_val) 代替count_val 传递到上下文中,但这不是您的问题。

标签: python django


【解决方案1】:

解决这个问题的一个好方法是在你的views.py文件中将对象限制为5行并将那个对象发送到你的模板,这样你的模板就不必处理计数。 (这种逻辑无论如何都应该由views.py文件处理,而不是模板)。由于我不知道您使用的是哪种对象,所以我将向您展示一个“书籍”示例来获取最后五行:

Book.objects.all()[:5]

【讨论】:

  • 这不是我想做的对不起。我只想创建一个数字循环。
猜你喜欢
  • 2011-07-11
  • 1970-01-01
  • 2020-10-14
  • 2020-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-13
相关资源
最近更新 更多