编程语言
首页 > 编程语言> > python-如何在Django中集中使用floatformat

python-如何在Django中集中使用floatformat

作者:互联网

在我的项目中,我要求用户提供一些度量,价格和权重.我想将数据存储为两位十进制值.我想我应该使用DecimalField而不是FloatField,因为我不需要太多的精度.

当我在模板中打印值时,我不想打印零个非有效小数.

例子:

10.00应该只显示10

10.05应该显示10.05

我不想在显示值太多的每个模板中都使用floatformat过滤器.所以我想知道是否有某种方法可以集中地影响所有应用程序的呈现值.

谢谢

解决方法:

您是否尝试过django插件Humanize

您可能会在这里找到想要的东西.

编辑

您是对的,人性化过滤器在这里不起作用.
在探究了django内置的过滤器和标签之后,我找不到能解决您问题的任何东西.因此,我认为您需要为此定制过滤器.就像是 …

from django import template

register = template.Library()

def my_format(value):
    if value - int(value) != 0:
        return value
    return int(value)

register.filter('my_format',my_format)
my_format.is_safe = True

在您的Django模板中,您可以执行以下操作:

{% load my_filters %}
<html>
<body>
{{x|my_format}}
<br/>
{{y|my_format}}
</body>
</html>

对于值x和y,分别显示1.0和1.1:

  1
  1.1

我希望这有帮助.

标签:django-templates,python,django,django-models
来源: https://codeday.me/bug/20191209/2095728.html