Зацикливайтесь на объектах Django и Bootstrap - PullRequest
0 голосов
/ 03 января 2019

Я хотел бы использовать Bootstrap cards, чтобы создать одну карту по объекту и добавить несколько субобъектов в каждый.

Например:

У меня есть объект Publication, который может содержать один или несколько подобъектов Document.

Объект публикации имеет некоторые атрибуты: category, title, picture, description и Объект документа имеет некоторые атрибуты, такие как title, format , language, ...

Я бы хотел получить что-то вроде этого:

enter image description here

Для той же категории я создаю карточку по публикации и перечисляю все документы для каждой публикации.

Вот что я получу с моим кодом:

enter image description here

Как видите, у меня должно быть документ № 1 и документ № 2 на одной карточке, а не две разные карточки.

Это мой код:

{% for category in research_categories|dictsort:'name' %}
  <div class="row">
    <fieldset>
      <legend id="category_{{ category.id }}"><span class="name">{{ category }}</span></legend>
    </fieldset>
  </div>

    <div class="row">
      <div class="col-sm-4">
        {% for element in test_research %}
          {% if element.publication.category|stringformat:"s"  == category|stringformat:"s" %}
            {% ifchanged %}
              <div class="card" style="width:250px">
                <img class="card-img-top" src="{{ element.publication.cover.url }}" alt="Card image">
                <div class="card-body">
                  <h4 class="card-title">{{ element.publication }}</h4>

                  <table class="table table-condensed">
                    <tbody>
                    <tr>
                      <td> {{ element.title }}</td>
                    </tr>
                    </tbody>
                  </table>
                </div>
              </div>
            {% endifchanged %}
          {% endif %}
        {% endfor %}
      </div>
    </div>
{% endfor %}

И мой взгляд по этой части:

# By default, display documents
test_research = Document.objects.all().order_by('publication__title', 'title', 'language', 'format')

research_categories = defaultdict(list)
for element in test_research:
    research_categories[element.publication.category].append(element)

research_publications = defaultdict(list)
for element in test_research:
    research_publications[element.publication].append(element)

kwargs['test_research'] = test_research
kwargs['research_categories'] = research_categories
kwargs['research_publications'] = research_publications
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...