[英]Django Template Tag
我有一个模板标签
@register.filter
def get_total(date_start=None, date_end=None):
fmt = '%Y-%m-%d %H:%M:%S%f'
if date_start is not None and date_end is not None:
ds = str(date_start)
new_ds = ds[:19]
de = str(date_end)
new_de = de[:19]
date_start = datetime.strptime(new_ds, fmt)
date_end = datetime.strptime(new_de, fmt)
return date_end - date_start
else:
return None
并像这样将其传递到我的网站中,
<td>{{ table.start_time|get_total:table.Date_Time_End }}</td>
我的结果之一如下:“ 16天,13:39:59.900000”我不想看到多余的900000。可以吗?
您的模板标记返回一个timedelta,并且无法使用strftime格式化timedelta。 我在另一个SO答案中找到了此功能:
def strfdelta(tdelta, fmt):
d = {"days": tdelta.days}
d["hours"], rem = divmod(tdelta.seconds, 3600)
d["minutes"], d["seconds"] = divmod(rem, 60)
return fmt.format(**d)
使用此功能,您可以修改模板标签以返回格式化的字符串:
return strfdelta(date_end - date_start, "%D days %H:%M:%S")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.