django模板带安全标记的小数分隔符

时间:2013-11-14 08:25:59

标签: django localization django-templates

view.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)

a.html

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

在PL loc。小数分隔符是',' C值打印为1,555 - 很好,但b打印为3.222,因为使用安全,我必须使用因为html标签。 如何使用','?

分隔所有浮点值

1 个答案:

答案 0 :(得分:1)

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

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

view.py

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

a.html

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

{{ c }}