You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django Template中迭代嵌套字典与多列表实现卡片正常渲染

问题原因

你模板代码中的第二层循环变量引用错误:
外层已经遍历cards列表拿到单个卡片对象card,但你第二层写的是{% for post in cards.posts %},这里的cards是外层的整个列表,本身没有posts属性,所以这层循环不会执行,才会出现只渲染外层卡片结构、没有内部post列表的问题。

修正后的模板代码

{% for card in cards %}
      <div class="card">
          <div class="card-body">
              <h4 class="text-center">{{ card.card_title }}</h4>
              <div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 g-3">
                <!-- 这里把cards.posts改为card.posts,取当前遍历到的单个卡片的posts属性 -->
                {% for post in card.posts %} 
                  <div class="col">
                  <div class="card">
                      <div class="card-header text-center text-primary">
                        <h5>{{ post.post_title }}</h5>
                      </div>
                      <ul class="list-group list-group-flush">
                        <li class="list-group-item border-0">
                          {% for content in post.contents %}
                          <i>{{ content }} <br> </i> 
                          {% endfor %}
                        </li>
                      </ul>
                    </div>
                  </div>
                  {% endfor %}
              </div>
          </div>
      </div>
{% endfor %}

额外检查建议

如果修改后仍未达到预期效果,可以检查数据构造逻辑:

  • 你提到card_postings是列表类型,而字典里card_title直接赋值为这个列表,如果需要展示单个标题,确认是否取了列表的对应单个元素赋值给card_title
  • 确认每个card下的posts列表已经正确填充了所有需要展示的post数据,不存在空列表的情况

内容的提问来源于stack exchange,提问作者Dinindu Theekshana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:48:02