カテゴリ: Django 更新日: 2026/03/25

Djangoテンプレートでよく使うフィルタ20選|使い方と例で初心者も安心

Djangoテンプレートでよく使うフィルタ20選|使い方と例で理解する
Djangoテンプレートでよく使うフィルタ20選|使い方と例で理解する

先生と生徒の会話形式で理解しよう

生徒

「Djangoのテンプレートって、HTMLに不思議な記号が書いてありますよね。あれは何をしているんですか?」

先生

「あれはテンプレートタグやフィルタと呼ばれる仕組みで、画面に表示する内容を調整するためのものです。」

生徒

「フィルタというのは、難しい処理を書くものなんですか?」

先生

「いいえ。フィルタは、表示するときに少し形を変えるための道具です。文字を大文字にしたり、日付を見やすくしたりするだけですよ。」

1. Djangoテンプレートフィルタとは?

1. Djangoテンプレートフィルタとは?
1. Djangoテンプレートフィルタとは?

Djangoテンプレートフィルタとは、画面に表示するデータを加工するための機能です。プログラムの中身を変えずに、見た目だけを調整できるのが大きな特徴です。たとえば、数字を桁区切りにしたり、文章を短くしたりできます。

フィルタは「パイプ記号(|)」を使って書きます。これは、水をろ過する道具のようなイメージで、元のデータを少し整えてから表示します。

2. よく使う文字列フィルタ

2. よく使う文字列フィルタ
2. よく使う文字列フィルタ

まずは文字列を扱うときによく使われるフィルタです。ブログやお知らせ画面では、文字の調整がとても重要になります。

  • upper:すべて大文字にする
  • lower:すべて小文字にする
  • title:単語の先頭を大文字にする
  • length:文字数を数える
  • truncatechars:指定した文字数で切り取る

<p>{{ username|upper }}</p>
<p>{{ message|truncatechars:10 }}</p>

この例では、ユーザー名を大文字で表示し、文章は十文字までに短くしています。長い文章を一覧画面に出すときに便利です。

3. 数値やデータを整えるフィルタ

3. 数値やデータを整えるフィルタ
3. 数値やデータを整えるフィルタ

次は数字やデータを見やすくするためのフィルタです。数値はそのまま表示すると、少し読みにくいことがあります。

  • add:数値を足す
  • divisibleby:割り切れるか判定する
  • filesizeformat:ファイルサイズを読みやすくする
  • default:値がないときの表示を決める
  • default_if_none:Noneのときの表示を決める

<p>{{ count|add:1 }}</p>
<p>{{ file_size|filesizeformat }}</p>

ファイルサイズが「1024000」のような数字でも、「1.0 MB」のように表示されるため、初心者にも優しい画面になります。

4. 日付と時間を扱うフィルタ

4. 日付と時間を扱うフィルタ
4. 日付と時間を扱うフィルタ

日付や時間は、表示の仕方で印象が大きく変わります。Djangoテンプレートでは、簡単に形式を整えられます。

  • date:日付の表示形式を指定する
  • time:時間の表示形式を指定する
  • timesince:どれくらい前かを表示する

<p>{{ post.created_at|date:"Y年m月d日" }}</p>
<p>{{ post.created_at|timesince }}前</p>

「三日前」や「一時間前」といった表現は、利用者にとって直感的で分かりやすいです。

5. リストや辞書で使えるフィルタ

5. リストや辞書で使えるフィルタ
5. リストや辞書で使えるフィルタ

複数のデータをまとめて扱うときに便利なのが、リスト用のフィルタです。商品一覧や記事一覧でよく使われます。

  • first:最初の要素を取り出す
  • last:最後の要素を取り出す
  • join:リストを文字列として結合する
  • slice:一部だけ取り出す

<p>{{ tags|join:", " }}</p>
<p>{{ items|slice:":3" }}</p>

タグをカンマ区切りで表示したり、最初の三件だけを表示したりできるため、画面がすっきりします。

6. 表示を安全にするフィルタ

6. 表示を安全にするフィルタ
6. 表示を安全にするフィルタ

最後は、安全や見た目に関わるフィルタです。Webアプリでは、予期しない表示を防ぐことが大切です。

  • safe:HTMLとして表示する
  • striptags:HTMLタグを削除する
  • linebreaks:改行を反映する
  • escape:危険な文字を無効化する

<p>{{ content|striptags|truncatechars:50 }}</p>

このように複数のフィルタを組み合わせることで、安全で読みやすい表示を簡単に作れます。

カテゴリの一覧へ
新着記事
New1
Flask
FlaskでAPIのエラーハンドリングを丁寧に行う方法まとめ!初心者向けにやさしく解説
New2
Flask
FlaskでAPIリクエストのバリデーションをする方法!初心者でもわかるPydanticとSchemaの使い方
New3
Flask
Flaskでパスワードを安全に扱う方法!ハッシュ化の仕組みと実装
New4
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Python
Pythonでタプルの最大値・最小値を取得する方法!max()・min()の使い方
No.3
Java&Spring記事人気No3
Python
Pythonの変数宣言と型ヒントの使い方!初心者向けに基礎をやさしく解説
No.4
Java&Spring記事人気No4
Python
Pythonのライブラリとは?標準ライブラリと外部ライブラリの違いと使い方を初心者向けに解説!
No.5
Java&Spring記事人気No5
Python
PythonでMongoDBを操作しよう!データの挿入・更新・削除を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Python
Pythonの変数に使えるデータ型とは?初心者向けに組み込み型の一覧と使い方をやさしく解説
No.7
Java&Spring記事人気No7
Flask
FlaskアプリをVPSにデプロイする基本手順!初心者向けにまとめ
No.8
Java&Spring記事人気No8
Django
Djangoプロジェクトのディレクトリ構造を完全解説!初心者でも迷わないフォルダの見方