作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的项目中,我要求用户提供一些尺寸、价格和重量。我想将数据存储为两位十进制值。我想我应该使用 DecimalField 而不是 FloatField,因为我不需要太多精度。
当我在模板中打印值时,我不希望打印零个无意义的小数。
例子:
10.00 应该只显示 10
10.05 应该显示 10.05
我不想在每个显示值的模板中都使用 floatformat 过滤器,太多地方了。所以我想知道是否有某种方法可以以集中的方式影响为所有应用程序呈现的值(value)。
谢谢
最佳答案
你试过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
希望对您有所帮助。
关于python - 如何在Django中集中使用floatformat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4098920/
我是一名优秀的程序员,十分优秀!