修改django admin里的时间显示格式


在使用Django Admin做一些业务系统时发现它默认的时间格式是类似于:

May 8, 2020, 11:55 a.m.

这对于一般的客户来说,读起来有点麻烦。所以经常会收到反馈是希望有一个易读性更强的时间字段。实现方法很简单,可以这样:

在ModelAdmin中,添加一个新的时间方法,例如:

def formated_time(self, obj):
    return obj.timefield.strftime("%Y-%m-%d %H:%M:%S")

然后指定它对应的ORM中的字段以及字段的说明:

formated_time.admin_order_field = 'timefield'
formated_time.short_description = 'Precise Time'

最后修改list_display,将原始的字段替换为formated_time:

list_display = ('id', 'time_seconds', )

大功告成!