Как сгруппировать определенные значения в колбе, используя jinja2? - PullRequest
0 голосов
/ 25 мая 2018

У меня мой index.html выглядит следующим образом,

<div class="ui small feed">
        {% for article in articles %}
          <h4 class="ui header">{{ article.source }}</h4>
            {% if article.comments %}
              <div class="event">
                <div class="content">
                  <div class="summary">
                    <a href="{{ article.comments }}">
                      {{ article.title }}</a>
                  </div>
                </div>
              </div>
            {% else %}
              <div class="event">
                <div class="content">
                  <div class="summary">
                    <a href="{{ article.link }}">
                      {{ article.title }}</a>
                  </div>
                <div>
              </div>
            {% endif %}
        {% endfor %}
    </div>

предыдущий код приводит к чему-то вроде этого,

samename
url
samename
url
samename
url
anothername
url
anothername
url

как мне перейти от этого к следующему?

samename
  url
  url
  url

anothername
  url
  url

Я пробовал несколько способов, таких как объявление переменной флага (с логическим значением), и всегда приводило к слишком большому количеству кода на стороне представления, и это плохо, не так ли?Может ли кто-нибудь помочь мне с этим.

1 Ответ

0 голосов
/ 25 мая 2018

Вы можете использовать groupBy (здесь doc )

{% for group in articles|groupby('source') %}
  <h4 class="ui header">{{ group.grouper }}</h4>
  {% for article in group.list %}
    {% if article.comments %}
      <div class="event">
        <div class="content">
          <div class="summary">
            <a href="{{ article.comments }}">
              {{ article.title }}
            </a>
          </div>
        </div>
      </div>
    {% else %}
      <div class="event">
        <div class="content">
          <div class="summary">
            <a href="{{ article.link }}">
              {{ article.title }}
            </a>
          </div>
        <div>
      </div>
    {% endif %}
  {% endfor %}
{% endfor %}

Надеюсь, это поможет вам!

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