はじめに
Djangoの参考書で、
HTTPステータスコード403/404/500用の画面を作る と言う
セクションがあり、いざ runserver しても404エラーを起こしても
カスタマイズした404画面が表示されなかった。
DEBUG = True だと表示されない
ステータスコード403/404/500用の画面を作るには
templates ディレクトリの"直下"に
403.html
404.html
500.html
を作成するだけです。
ただ、このまま runserver しても
この画面が表示されます。(作った画面と違う...)
画面下部に
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
と表示されています。
DeepLで翻訳してみる。
このエラーが表示されるのは、Django の設定ファイルで DEBUG = True を設定しているからです。これを False に変更すると、Django は標準の 404 ページを表示します。
DEBUG = True だと、ダメっぽい。
DEBUG = False にしてみる
DEBUG = True
に修正して runserver してみる。
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
エラーが出てしまったので、解決する。
DEBUG = True
ALLOWED_HOSTS = ['127.0.0.1']
ALLOWED_HOSTS = ['127.0.0.1']
を追加して
runserver してみる。
無事にカスタマイズした404画面が表示されました。
<h1>ページが見つかりません。</h1>
参考文献
大変参考になりました。ありがとうございます。
Djangoでカスタマイズした404ページを表示する
https://djangobrothers.com/blogs/django_404_page/