如何在Django Admin面板中自定义DateTime字段的显示格式
Django Admin 自定义时间显示格式实现
要让Answer模型的created_at字段在Admin面板按照「Feb. 27, 2021, 6:55 p.m.」的格式展示,无需借助pytz这类第三方库,通过Django内置能力即可完成配置,操作步骤如下:
- 在模型定义所在的文件顶部,引入Django内置的timezone工具:
from django.utils import timezone
- 修改Answer模型的__str__方法,替换原有直接将created_at转为字符串的逻辑,先把存储的时间转换为本地时区时间,再按照目标格式拼接返回内容,修改后的完整模型代码如下:
class Answer(models.Model): created_at = models.DateTimeField(auto_now_add=True, null=True) def __str__(self): return "(" + timezone.localtime(self.created_at).strftime('%b %d, %Y, %I:%M %p') + ")"
原有实现直接调用str(self.created_at)输出的是数据库存储的原始时间值,既没有做时区转换,也没有匹配自定义的展示规则,是导致Admin面板显示效果不符合预期的核心原因。
内容的提问来源于stack exchange,提问作者kofhearts
相关产品推荐
相关产品推荐

