首页 > 解决方案 > 将十进制转换为 MM:SS:MS Django

问题描述

我正在尝试将我的 Django 模型中的十进制值转换为 MM:SS:MS 的时间格式。

例如:97.13作为十进制值将变为01:37:13

有没有简单的方法可以在 Django 中使用原始 SQL 查询来实现这一点?假设我有这个原始查询:

example = Example.objects.raw("""SELECT x.id, x.time FROM your_Table x WHERE x.id = %s""", [id])

执行原始查询并在 Python 中操作它会更好吗?我该怎么做呢?我可以循环这些值吗?

for examples in example:
    formatted_time = function(examples.time)

最终,我想将我的示例对象(转换后的时间)传递给我的模板。

提前致谢。

标签: pythonsqldjangodata-conversion

解决方案


一种方法是使用 Django 的“模板过滤器”并为该转换制作模板过滤器。

https://docs.djangoproject.com/en/2.0/howto/custom-template-tags/

它看起来像:

@register.filter
def decimal_to_time_filter(decimal_value):

   # implement this conversion
   result = convert decimal_value to hh:mm:ss format

   return result

在您的模板中,您将使用自定义的“decimal_to_time_filter”过滤器显示重新格式化的数据。

{{ your_decimal_field|decimal_to_time_filter }}


推荐阅读