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

Django投票教程模板无法渲染Choice模型的choice_text问题

问题解决:Django模板中Choice文本无法显示

你的问题出在模板的循环变量命名错误,导致无法正确引用Choice对象的choice_text属性。

错误原因

在模板的for循环里,你把循环变量命名为question,但后续却尝试引用未定义的choice变量,同时这个循环变量还覆盖了外层传入的question对象:

{% for question in question.choice_set.all %}
    <li> {{choice.choice_text}} </li>
{% endfor %}

修改后的模板代码

把循环变量改为choice,并正确引用该变量的属性:

<h1>{{ question.question_text }}</h1>

<ul>
    {% for choice in question.choice_set.all %}
        <li>{{ choice.choice_text }}</li>
    {% endfor %}
</ul>

解释

  • question.choice_set.all会返回当前Question关联的所有Choice对象,循环时需要用一个变量(比如choice)来接收每个迭代的对象
  • 之前的循环变量用question,不仅和外层的Question对象重名造成混淆,更关键的是你在列表项里用了{{choice.choice_text}},而choice这个变量根本没在循环中定义,所以无法渲染出文本,只能显示空的列表项符号

你的视图函数和模型定义都是正确的,只需要修改模板中的循环部分即可正常显示Choice的文本内容。

内容的提问来源于stack exchange,提问作者JEAN MAXIMUS CACACHO

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:13:15