0

视图.py

def a(request)
  a=3.222
  c=1.555
  if a>5:
    b='<h1>%0.3f</h1>' % (a)
  else
    b='%0.3f' % (a)
  content={'a':b, 'c':c}
  return render(request, 'a.html', context)

一个.html

{{ a|safe }}
{{ c }}

在 PL 位置。小数点分隔符是 ',' C 值打印为 1,555 - 很好,但 b 打印为 3.222,因为我使用了由于 html 标签而必须使用的安全。如何使所有浮点值用 ',' 分隔?

4

1 回答 1

1

我认为您的问题与使用safe. 这只是 python 字符串格式(您在视图中使用)不具有位置感知能力的一种情况。您可以尝试使用locale.format()代替,它旨在作为区域设置感知的替代方案。

但无论如何,将 HTML 放入视图中并不是一个好习惯。所以我会将格式化逻辑移动到您的模板中:

视图.py

def a(request)
  a=3.222
  c=1.555
  content={'a':b, 'c':c}
  return render(request, 'a.html', context)

一个.html

{% if a>5 %}
    <b>{{ a }}</b>
{% else %}
    {{ a }}
{% endif %}

{{ c }}
于 2013-11-14T09:47:11.270 回答