将十进制转换为MM:SS:MS Django

时间:2018-07-25 13:46:39

标签: python sql django data-conversion

我正在尝试将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)

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

谢谢。

1 个答案:

答案 0 :(得分:1)

一种方法是使用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 }}