Djangoのテンプレートで数値に3桁のカンマ区切りを自動で入れるのイメージ画像

Djangoのテンプレートで数値に3桁のカンマ区切りを自動で入れる

  • 公開日:2019/01/27
  • 更新日:2019/01/27
  • 投稿者:n bit

Djangoのテンプレート内で数値データを扱う際にIntegerFieldやFloatFieldをそのまま出力すると桁区切りがないため人間には見にくい状態になります。今回はそのような数値データを人間でも扱いやすい3桁区切りを入れる方法の解説です。

  • Python
  • Django

この記事は約 分で読めます。(文字)

テンプレートで表示する数値に3桁のカンマ区切りを自動で入れる

Djangoのテンプレートで表示する数字に3桁のカンマ区切りを自動に入れるには『humanize』を利用します。

Note

『humanize』とは

『humanize』はDjangoのテンプレート内で扱うデータに、今回のような数値データに3桁ごとのカンマ区切りを入れるといった『人間らしさ』を追加するためのテンプレート専用フィルタセットです。

まず最初に『humanize』を利用できるようにsettings.pyの『INSTALLED_APPS』にセットアップします。

settings.py

INSTALLED_APPS = [




'django.contrib.humanize', # add
]

あわせて表示させる桁数の設定も必要です。

settings.py

NUMBER_GROUPING = 3

後はテンプレート内で3桁のカンマ区切りを入れたい数値データの後ろに以下のように追加しましょう。

  • 数値|intcomma
{{ object.value|intcomma }}

これで4桁以上の数字には自動で3桁毎にカンマ区切りが入ります。

  • 1000
  • ↓:|intcomma
  • 1,000

今日のdot

『humanize』はいちど設定しておけば次回以降はテンプレートで数値データの後に『|intcomma』をつけるだけでいつでも利用できます。