gpt4 book ai didi

python - 在 django 模板中显示 timedelta 对象

转载 作者:太空狗 更新时间:2023-10-29 17:07:48 25 4
gpt4 key购买 nike

我无法让我的 Django 模板一致地显示 timedelta 对象。我尝试在模板中使用时间过滤器,但执行此操作时没有显示任何内容。如果我使用 Assert False,timedelta 对象在错误页面上显示如下:

time    datetime.timedelta(0, 38, 132827)

这将时差显示为:

0:00:38.132827

我只想显示每个 timedelta 对象的小时、分钟和秒。有人对我如何做到这一点有任何建议吗?

最佳答案

我听从了 Peter 的建议并编写了一个自定义模板过滤器。

这是我采取的步骤。

首先我关注了这个 guide创建自定义模板过滤器。

请务必阅读关于 code layout 的这一部分.

这是我的过滤器代码

from django import template

register = template.Library()

@register.filter()
def smooth_timedelta(timedeltaobj):
"""Convert a datetime.timedelta object into Days, Hours, Minutes, Seconds."""
secs = timedeltaobj.total_seconds()
timetot = ""
if secs > 86400: # 60sec * 60min * 24hrs
days = secs // 86400
timetot += "{} days".format(int(days))
secs = secs - days*86400

if secs > 3600:
hrs = secs // 3600
timetot += " {} hours".format(int(hrs))
secs = secs - hrs*3600

if secs > 60:
mins = secs // 60
timetot += " {} minutes".format(int(mins))
secs = secs - mins*60

if secs > 0:
timetot += " {} seconds".format(int(secs))
return timetot

然后在我的模板中我做了

{% load smooth_timedelta %}

{% timedeltaobject|smooth_timedelta %}

示例输出

enter image description here

关于python - 在 django 模板中显示 timedelta 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16348003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com