flatpages を運用環境で動かすときは 404 ページテンプレートが必要

xrea で django.cgi を使って Django を動かしてたんだけど、どうもうまく flatpages が動かない。でもなんか DEBUG = True にしたらちゃんと動いてるみたいだしなんでだろうと思ってたら、ちゃんと公式ドキュメントに書いてあった。でかでかと。

flatpages アプリケーション — Django v1.0 documentation

flatpages 30A230D730EA30B130FC30B730E730F3 2014 Django v1.0 documentation - Firefox
Uploaded with plasq's Skitch!

つーことで templates/404.html ってやつを適当に作って解決。ちゃんとベーステンプレートからの継承とかもできとるみたいだし(当たり前か)。ついでに 500.html も作って CGI エラーとか出力されんようになってさらに快適。恥ずかしながら今まで CGI エラー出しっ放しだったのよね。。

そもそも flatpages は 404 エラー発生時の最後の手段として呼び出されるもので、404 用のテンプレートが用意できていないと 404 エラーの前に「テンプレートが存在しませんよ 500 エラー」が出ちゃうからこんなことになっちまったらしい。
そういや DEBUG モードんときは勝手に 404 とかのエラーページが用意されてるけど、運用環境にはそんなもんないもんなー。納得。