例如:
我在humanize中看到什么都没有,并且在Django文档中找不到任何东西。我尝试{{ value|multiply:100 }}%
失败。我知道我可以编写自己的模板标签,但我希望尽可能避免这样做。
更新:我也研究了
widthratio
标记。值为0.001时将变为0%。不幸的是,这不是我想要的。
答案 0 :(得分:2)
我继续创建了一个模板标签过滤器,如下所示:
@register.filter
def to_percent(obj, sigdigits):
if obj:
return "{0:.{sigdigits}%}".format(obj, sigdigits=sigdigits)
else: return obj
我很惊讶地看到在另一个答案中分享的 link 还没有一个干净的解决方案。我看到的最好的一个使用 try
块而不是 if obj
......我个人希望在我的用例中看到一个错误,但这取决于你。
不过,很高兴知道没有比我看到的更“Django”的方法了。您可以在模板中使用它,例如...
{{{{mymodel.some_percentage_field|to_percent:2}}
其中 2
是您想要的有效数字位数。
答案 1 :(得分:1)
正如Michael上文所述,我建议您为此编写自己的模板标签:https://docs.djangoproject.com/en/2.1/howto/custom-template-tags/
答案 2 :(得分:1)
您可以使用Django内置模板标签numpy.ScalarType
numbers.Number
如果this_value为175,max_value为200,max_width为100,则上例中的图像将为88像素宽(因为175/200 = .875; .875 * 100 = 87.5,四舍五入为88)
您还可以查看详细信息here
答案 3 :(得分:0)
也许使用以下解决方案之一:Is there a django template filter to display percentages?
希望有帮助。如果没有,请编写自己的简单过滤器:)
答案 4 :(得分:0)
如果您只需要用百分比格式设置数字格式,例如“ 65%”:
{{ number|stringformat:"d%%" }}