Применение различных стилей CSS для каждого элемента в цикле For Loop - Django

Я создаю блог на Django и пытаюсь применить свой статический дизайн к динамическим HTML шаблонам. У меня есть несколько CSS классов для различных типов карточек (обычная, средняя и большая), и я создаю страницу сообщений, которая должна отображать все сообщения из всех классов.

Я пытаюсь найти решение для просмотра каждого сообщения и применения различных CSS классов соответственно.

Подведем итоги:

  1. у меня есть список постов в моей базе данных
  2. я хочу перебрать все посты и присвоить разным постам разные заранее определенные CSS классы (то есть "класс" должен быть разным для некоторых постов, некоторые должны иметь класс "card", а некоторые "large-card" и т.д.)

Есть помощь?

Вот пример html-кода, на который я ссылаюсь:

    {% for post in post_list %}
            <div class="card">
...
</div>
  {% endfor %}

У вас есть различные возможности для этого:

  1. А как насчет того, чтобы просто использовать встроенную в forloop переменную (прокрутите немного вниз для получения списка доступных переменных):

    {% for post in post_list %}
        <div class="card{{ forloop.counter }}"> {{ post }} </div>
    {% endfor %}
    
  2. Вы также можете сделать

    списком кортежей в бэкенде, т.е. что-то вроде post_list. Тогда в шаблоне вы можете распаковать это:post_list = [ ("a", "class_a"), ("b", "class_b")]

    {% for post in post_list %}
         <div class="card{{ post.1 }}"> {{ post.0 }}</div>
    {% endfor %}
    
  3. Можно использовать встроенную

    regroup, например.

Мне удалось решить эту проблему, используя "Slice" и выбирая различные посты, а затем назначая различные классы при переборе постов в базе данных.

Вернуться на верх