Django-テンプレートに出力する日付の表示形式を変更する

テンプレートでdate形式のデータを出力するとき、デフォルトだと次のようになります。

April 1, 2010

M-d, Y 形式?のようです。

input タグなどで初期値にデータベースの値を設定したい場合に問題が生じるので、 2000-01-01 の形式にしたいなぁと思っていました。

形式を変更する方法がわかったのでメモします。

dateフィルターを使う方法

date フィルターを使います。

<p>Birthday: {{ birthday|date:"Y-m-d" }}</p>

↓出力結果
2000-01-01

デフォルトの設定を変更する方法

settings.pyで全てのdate形式のデータを指定することができます。

# settings.pyに下記を追記

DATE_FORMAT = 'Y-m-d'
USE_L10N = False

いちいち date フィルターを使わなくても良いので、とても楽です。

まとめ

date フィルターとsettings.py、二つの方法でdateのフォーマットを変更する方法がわかりました。やったね!