官方文档指南
今天开发的时候遇到这样一个情景:Django从MongoDB中读取一个包含时间戳字段的对象,放在页面模板的时候,解析不出来。使用过滤器{{ comment.comment_time|date:"Y-m-d H:i:s" }}无效,解析结果为空,也就是说前端页面显示为空白,通过使用Pycharm查看date过滤器的源码可以看到,这些过滤器被放在django/template/detaultfilters.py中,跟时间相关的只有四个过滤器:date、time、timesince_filter、timeuntil_filter,没有timestamp相关的过滤器,所以还是要自己动手丰衣足食。
添加templatetags 模块
新建文件timestamp_parse.py
添加如下代码:
from django import template
from datetime import datetime
register = template.Library()
@register.filter(expects_localtime=True, is_safe=False)
def timestamp_parse(value, format_string):
if value in (None, ''):
return ''
return datetime.fromtimestamp(value).strftime('%Y-%m-%d %X')
模板页面
{% load timestamp_parse %}
{{ comment.comment_time|timestamp_parse:"Y-m-d H:i:s" }}这些在官方文档里面也能找到,我这里提出来,用起来可能会快一点。
领取专属 10元无门槛券
私享最新 技术干货