Django:为每个第x个元素添加类

时间:2011-09-07 11:06:45

标签: django django-templates

假设我有一个对象

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

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

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

这样做有干净吗?

2 个答案:

答案 0 :(得分:3)

您可以使用cycle代码:

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

或:

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

答案 1 :(得分: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 ...请看:第一个孩子,第n个孩子(5n + 5)和最后一个孩子