新闻中心
Django Model Choice Fields 显示完整名称教程

本文档旨在解决 Django 模型中使用 `CharField` 和 `choices` 属性时,如何在模板中显示选项的完整名称,而不是存储在数据库中的缩写值。通过 `get_FIELD_display()` 方法,可以轻松地在模板中呈现更具可读性的选项名称。
在 Django 开发中,我们经常需要在模型中使用下拉选择框来限制用户输入。为了节省存储空间,通常会使用简短的字符串来表示选项值,而在界面上显示更友好的完整名称。本文将介绍如何利用 Django 提供的 get_FIELD_display() 方法,在模板中轻松地显示这些完整名称。
使用 choices 属性定义选项
首先,在 models.py 文件中,使用 choices 属性定义 CharField 字段的选项。choices 属性接受一个元组列表,其中每个元组包含两个元素:
- 第一个元素是存储在数据库中的实际值(通常是简短的字符串)。
- 第二个元素是将在界面上显示的完整名称。
例如:
from django.db import models
class StuData(models.Model):
id_num = models.IntegerField(primary_key=True)
entry_date = models.DateTimeField('Date of Entry')
MALE = 'm'
FEMALE = 'f'
OTHER = 'x'
GENUNK = 'u'
GENDER_SELECTIONS = [
(MALE,'Male'),
(FEMALE,'Female'),
(OTHER,'Non-Binary'),
(GENUNK,'Unknown'),
]
gender = models.CharField(max_length=1, choices=GENDER_SELECTIONS)
## Build the selections for the race field
AFR_RACE = 'AA'
ASI_RACE = 'AS'
WHI_RACE = 'WH'
UNK_RACE = 'UN'
RACE_SELECTIONS = [
(AFR_RACE, 'African-American'),
(ASI_RACE, 'Asian/Pacific Islander'),
(WHI_RACE, 'White'),
(UNK_RACE, 'Unknown Race'),
]
race = models.CharField(max_length=2, choices=RACE_SELECTIONS)
## Build the selections for the ethnicity field
HSP = 'HIS'
NHP = 'NHP'
UNK = 'UNE'
ETHNICITY_SELECTIONS = [
(HSP, 'Hispanic Origin'),
(NHP, 'Not of Hispanic Origin'),
(UNK, 'Unknown Ethnicity'),
]
ethnicity = models.CharField(max_length=10, choices=ETHNICITY_SELECTIONS)
stu_count = models.IntegerField(default=1)
user = models.ForeignKey(User, on_delete=models.CASCADE)
class Meta:
ordering = ["id_num"]
def __str__(self):
return str(self.id_num) # 修改为返回id_num字符串注意事项:
AI Surge Cloud
低代码数据分析平台,帮助企业快速交付深度数据
87
查看详情
- 确保 max_length 属性足够存储最长的完整名称,或者存储数据库中实际的值。
- choices 属性是可选的,但强烈建议使用它来规范用户输入。
- __str__ 方法需要返回一个字符串,因此需要将 self.id_num 转换为字符串。
在模板中使用 get_FIELD_display() 方法
Django 提供了一个方便的方法 get_FIELD_display(),可以用来获取 choices 属性中与数据库值对应的完整名称。在模板中,可以通过以下方式使用该方法:
{% for stu in studata_list %}
<tr>
<td>{{ stu.id_num }}</td>
<td>{{ stu.entry_date }}</td>
<td>{{ stu.get_gender_display }}</td>
<td>{{ stu.get_race_display }}</td>
<td>{{ stu.get_ethnicity_display }}</td>
<td>{{
stu.stu_count }}</td>
</tr>
{% endfor %}在上面的代码中,stu.get_gender_display、stu.get_race_display 和 stu.get_ethnicity_display 分别会返回 gender、race 和 ethnicity 字段的完整名称,而不是存储在数据库中的简短值。
总结:
使用 get_FIELD_display() 方法可以轻松地在 Django 模板中显示 choices 属性定义的完整名称,提高用户体验。这种方法简单易用,无需编写额外的代码即可实现。记住,FIELD 应该替换为你模型中实际的字段名称。
以上就是Django Model Choice Fields 显示完整名称教程的详细内容,更多请关注其它相关文章!
# 而在
# 佛山网站推广威鑫hfqjwl下拉
# 江苏网站优化建设
# 网站建设还能挣钱吗
# 产品各种推广营销方案设计
# 网站建设技巧方案模板
# 唐山高端网站建设
# 推广网站怎么加标签
# 保险销售网站建设
# 廊坊网站建设的软件
# 佛山网站建设厂家供应
# 相关文章
# go
# 为你
# 将在
# 第一个
# 而不是
# 如何实现
# 并在
# 数据库中
# 表单
# django
# cad
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法
优化HTML表单样式:解决输入框焦点跳动与元素间距问题
Golang如何测试channel通信行为_Golang channel通信测试与分析方法
HTML5原生日期选择器与jQuery UI:实现日期选择器的联动与程序化控制
Composer如何在生产环境安全地执行composer update
如何更改在 Excel 中打开超链接时的默认浏览器
三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升
PDF文件体积过大处理_PDF压缩技巧详解
Yandex官方入口网址 Yandex俄罗斯搜索引擎最新在线地址
C#如何安全地从用户上传的XML文件中读取数据? 验证与清理策略
Sublime怎么配置Nim语言环境_Sublime Nim代码高亮与补全
抓大鹅解压小游戏 抓大鹅摸鱼解压入口
J*aScript中localStorage数据的获取、清洗与格式化教程
哔哩哔哩忘记密码了怎么找回_哔哩哔哩密码找回方法
J*aScript中在Map循环中检测并处理空数组元素
J*aScript实现动态背景色下的文本与按钮颜色自适应调整
大象笔记网页版入口 印象笔记网页版登录入口
Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达
千牛数据看板网页版_千牛数据看板网页版访问方法
俄罗斯浏览器官网直达链接 俄罗斯浏览器最新在线入口导航
qq游戏大厅官方下载_qq游戏免费下载安装入口
J*a应用集成GitHub CLI与API认证指南
PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误
顺丰国际快递查询 国际件官方查询入口
windows10怎么查看硬盘序列号_windows10硬盘id查询命令
CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠
Yandex免登录网页版地址 Yandex搜索引擎官方访问入口
“在文档元素之后找到了标记”是什么错误? 检查并修复XML中多个根元素的3个方法
qq音乐在线播放入口_qq音乐电脑版登录链接
蛙漫移动版在线看 蛙漫手机浏览器直达入口
J*aScript动态修改指定div内所有a标签样式指南
如何使用纯J*aScript判断Input元素是否在特定类容器内
Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法
在J*aScript中复现SciPy的B样条拟合与求值:关键考量
深入理解Promise链:如何在catch后中断then的执行
支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样
文心一言怎样用插件调度API数据_文心一言用插件调度API数据【API调用】
c++如何实现一个简单的软件渲染器_c++从零开始的3D图形学
《明末:渊虚之羽》设计师谈设计角色:那会刚毕业 充满激情
Steam官网入口直达 Steam注册及登录步骤
顺丰快件物流信息 官方网站查询入口
J*a递归快速排序中静态变量的状态管理与陷阱
ACG动漫手机版官网入口 手机ACG动漫APP在线观看正版
小米Civi 4录制视频过暗_小米Civi 4亮度优化
谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作
Golang如何使用net/url解析URL_Golang URL解析与处理方法
微博网页版主页入口 微博官方网站免登录访问
苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】
俄罗斯Yandex搜索引擎入口_Yandex官网免登录一键访问
Windows电脑怎么截图最方便_系统自带截图工具的5种神仙用法【技巧】


2025-10-19
浏览次数:次
返回列表
stu.stu_count }}</td>
</tr>
{% endfor %}