Django: добавить класс к каждому х-му элементу - PullRequest
0 голосов
/ 07 сентября 2011

Допустим, у меня есть объект

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

Теперь я хотел бы просмотреть их в моем шаблоне, но в группах по 5,

Таким образом, будет 5 объектов на "строку».и в каждом ряду я хотел бы добавить класс к первому и последнему в этом ряду.

Есть ли причина для этого?

Ответы [ 2 ]

3 голосов
/ 07 сентября 2011

Вы можете использовать цикл тег:

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

или

<td{% cycle ' class="first"' '' '' '' ' class="last"' %}">
</td>
1 голос
/ 07 сентября 2011

В самом 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...