【问题标题】:How to loop X times in Django?如何在 Django 中循环 X 次?
【发布时间】:2010-06-03 20:47:03
【问题描述】:

我的网站上有用户评论。每条评论的评分为 1-5 星。我想打印那么多星星。我该怎么做?我只看到{% for X in Y %},它可以让你遍历一个列表,但不是一定次数。

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    使用Template range filter by zalun:

    from django.template import Library
    
    register = Library()
    
    @register.filter
    def get_range( value ):
      """
        Filter - returns a list containing range made from given value
        Usage (in template):
    
        <ul>{% for i in 3|get_range %}
          <li>{{ i }}. Do something</li>
        {% endfor %}</ul>
    
        Results with the HTML:
        <ul>
          <li>0. Do something</li>
          <li>1. Do something</li>
          <li>2. Do something</li>
        </ul>
    
        Instead of 3 one may use the variable set in the views
      """
      return range( value )
    

    【讨论】:

      【解决方案2】:

      不需要自定义过滤器 - make_list 将完成这项工作:

      {% for i in '123'|make_list %}
      

      【讨论】:

      • 我很确定这不会工作。这将返回 [1,2,3] not [0,1,2,...,122].
      • 是的,这就是我打算做的——正如 OP 所要求的那样。
      • 我是 OP,我很确定这不是我所要求的......这如何循环“一定次数”或“X 次”给定一个(整数)评级1和5?
      猜你喜欢
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 2011-07-04
      相关资源
      最近更新 更多