如何在Django中将持续时间显示为H:i?

2024-06-01 12:41:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个持续时间字段,在验证时,最长为24小时。
但是,当显示24小时时,它显示为:1 day, 0:00:00

我希望它显示为24:00

我当前正在显示DurationField,如下所示:

<td>{{ entry.duration }}</td>

Tags: td持续时间durationentry小时daydurationfield
1条回答
网友
1楼 · 发布于 2024-06-01 12:41:11

您可以为duration字段创建一个自定义小部件来操作输出,如以下答案所示:DurationField format in a ModelForm。在

from django.forms.widgets import TextInput
from django.utils.dateparse import parse_duration

class DurationInput(TextInput):

    def _format_value(self, value):
        duration = parse_duration(value)
        days = duration.days
        seconds = duration.seconds

        minutes = seconds // 60
        seconds = seconds % 60

        hours = minutes // 60
        minutes = minutes % 60         

        return '{:02d}{:02d}:{:02d}'.format(
            hours if hours != 0 else 24, minutes, seconds
        )

然后在你的表格中使用它。在

相关问题 更多 >