0

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 ロケート内。小数点記号は ',' C の値は 1,555 と出力されますが、b は 3.222 と出力されます。これは、html タグのために使用しなければならない safe を使用しているためです。すべての float 値を「,」で区切るにはどうすればよいですか?

4

1 に答える 1

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 }}
于 2013-11-14T09:47:11.270 に答える