Djangoのテンプレートで、金額などの数値に対してカンマ(コンマ)区切りで表示したい時はありませんでしょうか?
カンマ(コンマ)をつけると、より人間臭さがましてコンテンツを閲覧する側も見やすくなります。
コンテンツ
ゴール
とカンマ区切りがない表示を以下の1,100のようにカンマ区切りがある状態に表示させます。
環境
・Django 2.2~以降
設定手順
フィルタを有効にする
settings.pyのINSTALLED_APPSにdjango.contrib.humanizeを記述します。
settings.py
1 2 3 4 5 6 7 8 9 10 11 12 |
INSTALLED_APPS = [ - - - - 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', ] |
テンプレートファイルを呼び出す
使用したいhtmlファイルに{% load humanize %}
を記述して、humanizeを呼び出せるようにします。
sample.html
1 |
{% load humanize %} |
使用箇所に| intcommaを加える
実際にカンマ区切りで表示させたい部分に |intcomma を加えます。
例えば、{{ value }}があったら| ntcommaを追記して、{{ value|intcomma}} になるという感じです(valueには適当な値は入っています)。
なので最終的にこのような感じになっていることかと思います。
sample.html
1 2 3 4 5 6 |
{% load humanize %} - - - - {{ value|intcomma }} |
これで、1000が1,000と表示されるようになります。
それでも反映されない場合
以上を試してみても反映されない場合があります。
その場合は最後に:Falseを記述します。
1 |
{{ value|intcomma:False }} |
これは日付フォーマットなどのローカライゼーション機能が有効になっているため、False(無効化)して対応できるようにしています。
以上。
参考
django公式 : https://docs.djangoproject.com/ja/3.1/ref/contrib/humanize/
最後に
いかがでしたでしょうか。
以上が、「【Django】フィルタで数値のカンマ区切りを表示する」の紹介記事になります。
プログラミング学習を効率良く進めるには…
私ヒロヤンがプログラミングを始めた頃は以下のような感じでした。
そしてネットで調べていくうちに膨大な時間が過ぎていきました。
私ヒロヤンの実体験より、プログラミングを効率的に学ぶために大切なことは以下のことだと考えています。
1. いつまでもダラダラとやらないで、目標を決定して短期集中する
2. マンツーマンで、わからない箇所は直ぐに質問をして即レスをもらう
.proでは私ヒロヤンが学習してきたプログラミング経験0からのpython/django、その他webサイト・サービス開発のコースが用意されています。
カウンセリング自体は無料なので話を聞いてみるだけでもいかがでしょうか?
また以下のリンク先ではdjangoを教えてくれるスクールをまとめ紹介しています。
コメントを残す