Django Bootstrap card-deck if forloop divisibleby

Django Bootstrap card-deck if forloop divisibleby

我正在尝试使用 bootstrap 卡。但我有问题。 当我添加新的 post 以显示为卡片时,我显示超过 5 个,它们开始挤压。 每次显示超过 5 张卡片时,我都尝试使用 forloop 计数器开始新行。 但我做错了什么。我什么都读,到处都是一样的东西。但我肯定做错了。

     <div class="card-deck">
    {% for post in post_list %}
    {% if forloop.counter0|divisibleby:3 %}
      <div class="card border-primary mb-3" style="max-width: 20rem;">
          <a href="{% url 'post_detail' post.slug  %}">
              <img style="height: 200px; width: 100%; display: block;" src="{{ post.thumb.url }}" alt="Card image"></a>
                  <div class="card-header">Header</div>
                      <div class="card-body">
                      <h4 class="card-title">{{ post.title }}</h4>
                      <p class="card-text">{{post.content|slice:":200" }}</p>
                      </div>
      </div>   {% endif %}    
  </div>      
 </div>  {% endfor %}          

Reference image

现在你只能看到每三张牌(因为 "divisibleby:3")。我不太确定你想要实现什么,但如果你想显示所有卡片,有几个选项。其中两个是卡片组(https://getbootstrap.com/docs/4.0/components/card/#card-groups) and card decks (https://getbootstrap.com/docs/4.0/components/card/#card-decks),但是当卡片数量越来越多时,它们确实会变得混乱。我成功使用的一个解决方案是使用 Bootstrap 的网格。当视口较小或卡片数量较多时,卡片将自动换行到下一行。下面的代码应该可以工作(还没有测试过):

div class="container-fluid">
    <div class="row">
        {% for post in post_list %}
            <div class="col-auto">
                <div class="card border-primary mb-3">
                    <a href="{% url 'post_detail' post.slug  %}">
                        <img style="height: 200px; width: 100%; display: block;" src="{{ post.thumb.url }}" alt="Card image">
                    </a>
                    <div class="card-header">
                        Header
                    </div>
                    <div class="card-body">
                        <h4 class="card-title">{{ post.title }}</h4>
                        <p class="card-text">{{ post.content|slice:":200" }}</p>
                    </div>
                </div>
            </div>
        {% endfor %}
    </div>
</div>