代码之家  ›  专栏  ›  技术社区  ›  maraujop

Django如何集中使用floatformat

  •  3
  • maraujop  · 技术社区  · 14 年前

    当我在模板中打印值时,我不希望打印零个非有效小数。

    示例:

    10.05应该显示10.05

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

    谢谢

    3 回复  |  直到 14 年前
        1
  •  2
  •   Manuel Salvadores    14 年前

    你试过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
    

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

    价值观 x y 1.0 1.1 分别表明:

      1
      1.1
    

        2
  •  1
  •   maraujop    14 年前

    我终于想出了这个问题的答案,并把它发表在我的博客上: http://tothinkornottothink.com/post/2156476872/django-positivenormalizeddecimalfield

    希望有人觉得有用

        3
  •  0
  •   gdvalderrama    9 年前

    如果模型中的某个属性:

    _weight = models.DecimalField(...)
    weight = property(get_weight)
    
    def get_weight(self):
        if self._weight.is_integer():
            weight = int(self._weight)
        else:
            weight = self._weight
        return weight