【问题标题】:Django : add class to every x'th elementDjango:为每个第 x 个元素添加类
【发布时间】:2011-11-12 01:35:54
【问题描述】:

假设我有一个对象

foo =[ob1, obj2, obj3 ... obj100 ...]

现在我想在我的模板中循环遍历它们,但以 5 个为一组,

所以每个“行”将有 5 个对象。在每一行中,我想为该行的第一个和最后一个添加一个类。

这样做有明确的原因吗?

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    django 本身已经有一个均匀和不均匀的添加模板过滤器。查看它并创建您自己的自定义过滤器..

    https://docs.djangoproject.com/en/dev/howto/custom-template-tags/

        register = template.Library()
    
        @register.filter
        def count_each_5th_object(value, arg):
            counter = 0
            for object in value:
                counter += 1
                if counter % arg etcetera...
    

    但如果您纯粹出于样式原因尝试实现此结果,我建议仅使用 css...查看:first-child、nth-child(5n+5) 和 last-child

    【讨论】:

      【解决方案2】:

      你可以使用cycle标签:

      <td class="{% cycle 'first' '' '' '' 'last' %}">
      </td>
      

      或:

      <td{% cycle ' class="first"' '' '' '' ' class="last"' %}">
      </td>
      

      【讨论】:

        猜你喜欢
        • 2012-05-10
        • 2021-08-30
        • 2011-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多