如何在Django模板中格式化浮点值?

时间:2019-06-03 10:11:13

标签: django django-templates

我想像这样在我的django模板中格式化浮点值:

125000 => 125k

125,000,000 => 125M

为此,我必须使用任何custom template tag还是django吗?

有什么主意吗?

2 个答案:

答案 0 :(得分:1)

您可以通过以下过滤器模板标签使用它:

@register.filter
def format_number(num):
    num = int(num)
    magnitude = 0
    while abs(num) >= 1000:
        magnitude += 1
        num /= 1000.0
    return '%.2f%s' % (num, ['', 'K', 'M', 'G', 'T', 'P'][magnitude])

print(format_number(32413423)) # 32.41M

它将支持P

我使用以下链接创建了代码: formatting long numbers as strings in python

答案 1 :(得分:0)

This是内置模板标记和过滤器的列表,因此,如果不存在,则必须构建自己的模板。

您将在django.contrib.humanize中找到与您所需类似的内容,以此为基础来构建自己的过滤器。