Djangoでadminのカスタムテンプレートタグとかテンプレートの拡張とかでハマった点を情報展開しとく。あと備忘録用。
テンプレートのディレクトリ構成は?
過去にdjango-jaで議論してたのを参考に下記の構成で。
(ごめんなさい。議論のページをロストしました...。)
<project-dir>
|-- <app-dir>
| |-- templates
| | `-- admin
| | `-- <app-dir> ※アプリケーションディレクトリと同名。
| | `-- *.html アプリのadminテンプレートに対しての拡張。
| `-- templatetags
| |-- __init__.py Pythonライブラリとして認識させるため必須。
| `-- *.py カスタムテンプレートタグのコード。
`-- templates
`-- admin
`-- *.html adminテンプレート全体に対しての拡張。
テンプレートディレクトリをsettings.pyに登録する。
settings.pyのTEMPLATE_DIRSに登録する。登録するのは2つ。
- '/path/to/django/<project-dir>/templates'
- '/path/to/django/<project-dir>/<app-dir>/templates'
/path/to/django/という絶対パスが入ってしまうのだけど、これ回避する策ないかな...。
カスタムテンプレートタグディレクトリをsettings.pyに登録する。
settings.pyのINSTALLED_APPSに登録する。
- '<project-dir>.<app-dir>.templatetags'
あるいは、カスタムテンプレートタグのコードファイルがextras.pyだとしたら、
- '<project-dir>.<app-dir>.templatetags.extras'
これも、INSTALLED_APPSに登録するより賢い方法を模索中。
あとは...
あとはDjangoの翻訳ドキュメントにのっとり拡張すればいいよ。他にハマリどころはないはず。
参考
参考書籍
django-jaの翻訳ドキュメントとともに下記書籍を参考にしました。
開発のプロが教える標準Django完全解説―Webアプリケーションフレームワーク (デベロッパー・ツール・シリーズ)
- 作者: 増田泰,中居良介,露木誠,松原豊
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2008/06/19
- メディア: 単行本
- 購入: 10人 クリック: 84回
- この商品を含むブログ (36件) を見る
余談
業務はPHPが中心だったのだけど、Djangoのadmin利用してサクっと管理画面作ったら暗黙的にDjango採用OKという社内空気。
Tracは着任当初にSubversionとともに導入してプラグイン作ったり。Sphinxは使い始めでこのあと他のアプリに組み込む予定。

