Django: 2010年2月アーカイブ



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の翻訳ドキュメントとともに下記書籍を参考にしました。



余談


業務はPHPが中心だったのだけど、Djangoのadmin利用してサクっと管理画面作ったら暗黙的にDjango採用OKという社内空気。


Tracは着任当初にSubversionとともに導入してプラグイン作ったり。Sphinxは使い始めでこのあと他のアプリに組み込む予定。


あわせて読みたい

  • あわせて読みたいブログパーツ

Lingr java-ja

ウェブページ

2010年2月: 月別アーカイブ

Powered by Movable Type 4.1