flatpages を運用環境で動かすときは 404 ページテンプレートが必要
xrea で django.cgi を使って Django を動かしてたんだけど、どうもうまく flatpages が動かない。でもなんか DEBUG = True にしたらちゃんと動いてるみたいだしなんでだろうと思ってたら、ちゃんと公式ドキュメントに書いてあった。でかでかと。
flatpages アプリケーション — Django v1.0 documentation
つーことで templates/404.html ってやつを適当に作って解決。ちゃんとベーステンプレートからの継承とかもできとるみたいだし(当たり前か)。ついでに 500.html も作って CGI エラーとか出力されんようになってさらに快適。恥ずかしながら今まで CGI エラー出しっ放しだったのよね。。
そもそも flatpages は 404 エラー発生時の最後の手段として呼び出されるもので、404 用のテンプレートが用意できていないと 404 エラーの前に「テンプレートが存在しませんよ 500 エラー」が出ちゃうからこんなことになっちまったらしい。
そういや DEBUG モードんときは勝手に 404 とかのエラーページが用意されてるけど、運用環境にはそんなもんないもんなー。納得。