防止django宽度计算超过100%

时间:2014-10-06 11:20:37

标签: django twitter-bootstrap-3 django-templates

我试图整合一个带有多个百分比值(see docs example)的bootstrap 3进度条。

所有值的总和值不能超过100%,但是django正在四舍五入,我得到的值为101%

#max_width = 100
#total.count = 17

#a.count = 11 (65%)
#b.count = 2 (12%)
#c.count = 4 (24%)


<div class="progress">   
  <div class="progress-bar" style="width: {% widthratio a.count total.count max_width %}%">
    {{ a.count }} ({% widthratio a.count total.count max_width %}%)
  </div>

  <div class="progress-bar" style="width: {% widthratio b.count total.count max_width %}%">
    {{ b.count }} ({% widthratio b.count total.count max_width %}%)
  </div>

  <div class="progress-bar" style="width: {% widthratio c.count total.count max_width %}%">
    {{ c.count }} ({% widthratio c.count total.count max_width %}%)
  </div>

</div>   

输出

<div class="progress">
      <div class="progress-bar" style="width: 65%">
        11 (65%)
      </div>
      <div class="progress-bar" style="width: 12%">
        2 (12%)
      </div>
      <div class="progress-bar" style="width: 24%">
        4 (24%)
      </div>
</div>

如您所见,所有百分比最多都加起来为101%,因此最后一个值不会显示在进度条中。有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我发现了这个,这并没有真正帮助。我正在考虑同样的问题 https://code.djangoproject.com/ticket/12026

不确定这是否是最佳方法,但是:

@register.simple_tag
def percentage(value, total):
    return float(value)/float(total) * 100

然后在模板中: style =“width:{%percentage group.count total.count%}%;”