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

在Django模板中渲染choices标签名称而非整数字段

问题解答

你不需要修改视图,直接在HTML模板中调整即可解决这个问题。

Django会为带有choices参数的字段自动生成一个get_<字段名>_display()方法,用来获取该字段对应的标签文本。

具体修改步骤:

  • 修复视图中的小问题:你的视图里review_list = Model1.objects.all少了括号,应该改为Model1.objects.all(),否则传递给模板的是查询集对象的引用而非实际数据:
def account(request):
    review_list = Model1.objects.all()  # 补上括号
    return render(request,"main/account.html", {'review_list':review_list})
  • 修改HTML模板:把{{Model1.Choice_A }}替换为{{ item.get_Choice_A_display }},这样就能渲染出对应的标签文本了:
<h6>Champagnes</h6>
{% for item in review_list%}
<table class="table table-hover table-striped table-bordered ">
    {% if item.user == user%}
    <tr>
        <th>Text</th><th>{{ item.get_Choice_A_display }}</th>
    </tr>
{%endif%}
</table>
{% endfor %}

(顺便把循环变量名从Model1改成了item,避免和模型类名混淆,可读性更好)

原理说明:

当你在模型字段中设置choices后,Django会为每个实例添加get_<字段名>_display()方法,调用它就能返回该字段当前值对应的标签文本,而不是存储的整数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:45:44