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

Django中如何逐个显示对象?现有代码问题求助

解决Django模板循环显示整个QuerySet的问题

嘿,我一眼就瞅出问题出在哪了!你的模板循环逻辑里变量名搞混啦,导致每次循环都把整个QuerySet打印出来,而不是单个按钮对象。

问题根源

你在模板里写的是:

{% for buttons in button %}
  <!-- 这里错误地用了 {{ button }} 而不是循环里的单个变量 -->
{% endfor %}

这里的button是你从自定义模板标签传过来的整个QuerySet集合,而buttons才是每次循环迭代到的单个Button对象。你现在输出{{ button }},自然每次都会把所有按钮的QuerySet打印一遍。

修正方案

把模板里的{{ button }}改成循环变量对应的字段(比如你的Button模型应该有个存储按钮名称的字段,比如name),同时建议把循环变量名改得更清晰,避免和整个集合的变量名混淆:

修正后的home.html代码:

{% for btn in button %}
<li class="nav-item">
  <a class="nav-link" href="">
    <button class="btn" type="submit">
      <i class="fa fa-bullhorn" aria-hidden="true"></i> {{ btn.name }}
    </button>
  </a>
</li>
{% endfor %}

额外说明

  • 如果你Button模型里的字段不是name,换成你实际定义的字段名就行(比如title或者button_text)。
  • 你的模板标签代码是没问题的,show_menu()已经正确把所有Button对象的QuerySet传给了模板里的button变量,问题完全出在模板的循环输出部分。

这样改完之后,循环就会逐个遍历QuerySet里的每个Button对象,显示单个按钮的内容啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:09:31