python - 将十进制转换为 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)
最终,我想将我的示例对象(转换后的时间)传递给我的模板。
提前致谢。
解决方案
一种方法是使用 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 }}
推荐阅读
- java - Java POI FormulaEvaluator 给出了意外的浮点值
- c# - 您可以逗号分隔“Access-Control-Allow-Origin”标头吗?
- python - 寻找一种编写具有多种可能性的 if 结构的好方法
- linux - 使用 grep fl*o 做什么?
- javascript - DateTimePicker css 不正确
- matlab - 使用自适应阈值函数在 MATLAB 中进行图像分割
- objective-c - 如何在 CIImageProcessorKernel 子类中为 Metal Compute 指定设备?
- python-3.x - BS4:使用 Python 在 Google SERP 中查找父类
- python - 如何在不使用 SQLAlchemy 引擎的情况下将数据框写入 Postgres 表?
- ubuntu - Ubuntu 19.10 上的 OpenModelica