如何在Django中渲染可读性更强的人性化日期?
实现Django模板中日期的人性化显示
当然可以!Django早就为这种人性化时间显示需求准备了现成的解决方案,不用自己从头写逻辑~
第一步:启用
humanize内置应用
首先得在你的项目settings.py的INSTALLED_APPS里添加django.contrib.humanize,因为这个模块默认是不启用的:INSTALLED_APPS = [ # 其他已有的应用... 'django.contrib.humanize', ]第二步:在模板中加载
humanize标签库
在你要渲染日期的模板文件顶部,添加加载指令:{% load humanize %}第三步:使用
naturaltime过滤器格式化日期
把你原来的日期渲染代码替换成naturaltime过滤器:
原来的代码可能是:published on {{ post.published_date|date:"F j, Y" }}替换成:
published {{ post.published_date|naturaltime }}
这样就能自动输出类似published an hour ago、published 3 days ago或者published just now这种友好的格式了。如果你的发布日期是未来的时间(比如定时发布的内容),它还会自动显示in 2 hours、in 1 week这类表述,非常智能。
如果内置的naturaltime不符合你的特定需求,你也可以自定义模板过滤器,但对绝大多数场景来说,这个内置方案已经完全够用啦~
内容的提问来源于stack exchange,提问作者user9931820
相关产品推荐
相关产品推荐

