djangoを使ってサイトを構築する場合、「settings.py」にて、プロジェクトのルートディレクトリのパスを定義して、そこから相対パスでテンプレートディレクトリを指定するテクニックがあります。ただし、django1.4にて同じことをやろうとする場合、「settings.py」の場所が変更されたので、ルートディレクトリの定義を変更する必要があります。
--- settings.py ---
import os
# django1.3まで
# SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
# django1.4
SITE_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))
この方法で定義しておくと、「SITE_ROOT」がきちんとプロジェクトのルートを指すようなり、ルート直下においた「templates」などは以下のように指定することができるようになります。
--- settings.py ---
TEMPLATE_DIRS = (
os.path.join(SITE_ROOT, 'templates'),
)
※ 勿論django1.3の「SITE_ROOT = os.path.dirname(os.path.realpath(file))」で、「templates」等のディレクトリを「settings.py」と同じディレクトリにすれば問題なく動きます。ただ「locale」ディレクトリをプロジェクトルートに置きたかったので、「templates」ディレクトリ等も今まで通りの場所に置こうと思いました。