2012-04-09

Django 1.4 에서 Template 디렉토리 설정

Django 1.4 에서 가장 큰 변화라면, 전체 어플리케이션의 레이아웃이 바뀌었다는 점이다.
이전 버전에서는 프로젝트를 생성하면 아래와 같이 파일들이 생성되었다.

project_name/
            `- __init__.py
            `- manage.py
            `- settings.py
            `- urls.py
            `- wsgi.py
1.4에서는 이렇게 바뀌었다.
project_name/
            `- manage.py
            `- project_name/
                           `- __init__.py
                           `- settings.py
                           `- urls.py
                           `- wsgi.py

여기에서 주의 깊게 볼 것은 상위에 있는 project_name 디렉토리에는 __init__.py 파일이 없기 때문에 패키지명으로 사용할 수 없다는 것과 settings.py 에서 템플릿 디렉토리를 지정할 때 주의해야 한다는 것이다. 템플릿 디렉토리를 절대경로로 하는 경우에는 상관 없지만, 보통(?) settings.py 를 기준으로 상대경로를 지정하는 경우가 많이 있다.
1.4 이전에는 다음과 같이 하면 문제 없었다.

import os.path
TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), 'templates'),
)

그러나, 1.4 에서는 settings.py 의 위치가 한단계 밑으로 내려갔기 때문에, 좀 더 복잡해지긴 했지만, 아래와 같은 방법으로 설정해주어야 한다.

import os

SETTINGS_DIR = os.path.abspath(os.path.dirname(__file__))
(SITE_ROOT, dummy) = os.path.split(SETTINGS_DIR)


TEMPLATE_DIRS = (
    os.path.join(SITE_ROOT, 'templates'),
)

댓글 없음:

댓글 쓰기