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

Django模板如何获取模型选择字段的文本而非数值?

获取Django Choice字段的显示文本

这问题我碰到过好多次啦,Django的Choice字段确实有这个小细节——数据库里存的是你定义的键值(比如'1'、'2'),但要拿到对应的显示文本,得用它自动生成的专属方法才行!

直接在模板里获取的方法

Django会为每个带choices参数的字段自动生成一个get_<字段名>_display()方法,在模板里调用的时候不用加括号,直接写:

{{ 你的模型实例.get_contract_display }}

举个实际的例子,假设你的模型是这么定义的:

from django.db import models

class YourModel(models.Model):
    CONTRACT_OPTIONS = (
        ('1', 'always'),
        ('2', 'sometimes'),
    )
    contract = models.CharField(max_length=1, choices=CONTRACT_OPTIONS)

当你把YourModel的实例传到模板(比如叫obj),直接用{{ obj.get_contract_display }}就能输出对应的always或者sometimes了。

额外小提示

如果是在视图或者模型方法里需要获取这个文本,就需要加括号调用:

# 视图里
obj = YourModel.objects.get(id=1)
contract_text = obj.get_contract_display()

这个方法是Django内置的,不用自己额外写逻辑,既方便又不容易出错~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:58:55