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

Django数据库Choice字段显示异常:所有用户性别均显示为女性如何修复

问题原因及修复方案

1. Choice字段定义错误

Django的choices参数要求每个选项的格式为(实际存储到数据库的值, 后台/前台展示的可读名称),你当前的定义把存储值和展示值完全写反了,导致你在后台选「Male」实际存到数据库的是Female,选「Female」存的是Male,直接输出的时候自然全部显示错误。
请将模型里的CHOICES修改为正确的格式,示例:

CHOICES = [
    ('Male', '男'),
    ('Female', '女')
]

如果需要存储中文也可以调整为:

CHOICES = [
    ('男', '男'),
    ('女', '女')
]

2. 模板取值方法错误

你当前在模板中直接写{{ post.gender }},输出的是数据库中存储的原始值,如果需要输出Choice对应的可读展示名称,需要调用Django自动为Choice字段生成的get_字段名_display方法,将模板中的对应代码修改为:

<p class="article-content">{{ post.get_gender_display }}</p>

额外注意

修改代码后如果之前已经录入过数据,旧数据是按照错误的规则存储的,需要手动修正数据库中的旧性别数据,否则旧用户的性别显示还是会异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:00:04