Как использовать один цикл for в разных макетах div в django? - PullRequest
0 голосов
/ 21 июня 2020

пример раздела

Я хотел перечислить сообщения блога в разделе, имеющем разные макеты div. Как это сделать, используя только один для l oop. Или есть другой способ, если да, не могли бы вы подсказать, как это сделать?

1 Ответ

0 голосов
/ 22 июня 2020

Вместо использования для l oop. Одним из методов может быть использование тега шаблона django.

Использование циклов for для этого конкретного сценария потребует множества условий для создания шаблона.

Примечание: сетка Bootstap Система 'использовалась для построения макета в шаблоне. Информация по этому поводу находится здесь

Шаблон

<div class="row>
  <div class="col-8">
  {{ posts|get_element_by_index:0 }}
  </div>
  <div class="col-4>
    <div class="row">
    {{ posts|get_element_by_index:1 }}
    </div>
    <div class="row">
    {{ posts|get_element_by_index:2 }}
    </div>
  </div>
</div>
<div class="row">
  <div class="col-4">
  {{ posts|get_element_by_index:3 }}
  </div>
  <div class="col-4">
  {{ posts|get_element_by_index:4 }}
  </div>
  <div class="col-4">
    <div class="row">
    {{ posts|get_element_by_index:5 }}
    </div>
    <div class="row">
    {{ posts|get_element_by_index:6 }}
    </div>
    <div class="row">
    {{ posts|get_element_by_index:7 }}
    </div>
  </div>
</div>

Тег шаблона

from django import template
register = template.Library()

@register.filter
def get_element_by_index(queryset, i):
    try:
        post = queryset[i]
    except:
        post = None
    return post

Информацию о том, как настроить теги шаблонов, можно найти здесь

Если вы хотите вернуть сообщение обратно в качестве полезной переменной для использования, пожалуйста, просмотрите встроенный шаблон with найдено здесь

...