Применение различных стилей CSS для каждого элемента в цикле For Loop - Django
Я создаю блог на Django и пытаюсь применить свой статический дизайн к динамическим HTML шаблонам. У меня есть несколько CSS классов для различных типов карточек (обычная, средняя и большая), и я создаю страницу сообщений, которая должна отображать все сообщения из всех классов.
Я пытаюсь найти решение для просмотра каждого сообщения и применения различных CSS классов соответственно.
Подведем итоги:
- у меня есть список постов в моей базе данных
- я хочу перебрать все посты и присвоить разным постам разные заранее определенные CSS классы (то есть "класс" должен быть разным для некоторых постов, некоторые должны иметь класс "card", а некоторые "large-card" и т.д.)
Есть помощь?
Вот пример html-кода, на который я ссылаюсь:
{% for post in post_list %}
<div class="card">
...
</div>
{% endfor %}
У вас есть различные возможности для этого:
А как насчет того, чтобы просто использовать встроенную в forloop переменную (прокрутите немного вниз для получения списка доступных переменных):
{% for post in post_list %} <div class="card{{ forloop.counter }}"> {{ post }} </div> {% endfor %}
- Вы также можете сделать
списком кортежей в бэкенде, т.е. что-то вроде
post_list
. Тогда в шаблоне вы можете распаковать это:post_list = [ ("a", "class_a"), ("b", "class_b")]
{% for post in post_list %} <div class="card{{ post.1 }}"> {{ post.0 }}</div> {% endfor %}
- Можно использовать встроенную
regroup, например.
Мне удалось решить эту проблему, используя "Slice" и выбирая различные посты, а затем назначая различные классы при переборе постов в базе данных.