Django:DurationField微秒在Admin中不显示的排查与说明
Django DurationField 在 Admin 显示微秒的问题解决
我之前也碰到过类似的困惑,先给你个明确结论:Django 的 DurationField 在 Admin 里是原生支持显示和编辑微秒的,完全不需要额外配置——你遇到的只显示 HH:MM:SS 的情况,问题出在数据本身,不是 Django 的配置问题。
问题根源
排查下来,核心原因是你的时长数据在入库前的某个流程中,微秒部分被意外移除了:
- 可能是前端录入时的表单处理逻辑截断了微秒;
- 或是后端代码在保存数据前,对 DurationField 对应的变量做了格式化处理,丢失了微秒信息;
- 少数情况可能是数据库驱动的配置问题,但主流数据库(比如 PostgreSQL、MySQL 5.6+)都支持微秒级时长存储,这种概率很低。
验证方式
你可以直接查数据库里的对应字段值:
- 比如 PostgreSQL 的
interval类型,如果存了微秒,会显示成00:01:02.123456这样的格式; - 如果数据库里只有
00:01:02,那 Admin 自然只会显示到秒级。
只要数据库中存储了完整的带微秒的时长数据,Django Admin 会自动渲染出包含微秒的格式,编辑时也支持输入带微秒的时长值(比如 00:01:02.123456)。
内容的提问来源于stack exchange,提问作者guettli
相关产品推荐
相关产品推荐

