import os.path
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
TEMPLATE_DIRS = (
os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'),
#os.path.join(BASE_DIR,'templates'),
)
내가 TEMPLATE_DIRS이 정확히 무엇인지 알고 싶은 상대 경로를 템플릿, 그래서 내가 장고 쉘에서 실행? 나는 쉘에서 몇 가지 테스트를했고, 또 다른 질문을했다 : 주석, os.path.join(BASE_DIR,'templates')
와장고
>>> os.path.dirname(os.path.dirname('/user/name'))
'/'
>>> os.path.dirname('/user/name')
'/user'
>>> B = os.path.dirname(os.path.dirname('/user/name'))
>>> os.path.join(B,'template')
'/template'
코드, 그것은 '/templates'
함께 제공하지 않습니다? 루트 디렉토리가 아닙니까? 그렇다면 장고는 내가 가지고 있지 않은 디렉토리에서 내 템플릿 파일을 어떻게 검색 할 수 있습니까?
의 루트에서
templates/
디렉토리로 현재 라인의 포인트는 그냥 TEMPLATE_DIRS을 만들 수있는 두 방법을 테스트하려는. "os.path.join (os.path.dirname (__ file__), 'templates')"이 작동하지 않는 이유는 무엇입니까? – MMMMMCCLXXVII시험 한 실험을 보았습니까?
>>> os.path.dirname (os.path.dirname ('/ user/name')) '/'
2 번 폴더를 가져간 후 슬래시가 표시됩니다. 그렇다면 BASE_DIR은 /home/xyz/foo/foo/settings.py에 장고 프로젝트가 있다면/home/xyz/foo와 어떻게 같을까요? 내 말은 BASE_DIR은 '/'일 것이다. 나는 그 지점에 있는가? – MMMMMCCLXXVII
존재하지 않는'/ home/xyz/foo/foo/templates'에서 검색하기 때문에'os.path.dirname'에서만이 작업을 수행 할 수 없습니다. 'os.path.join'을 호출하기 전에 하나의'dirname'을 잊어 버렸습니다. 'dirname' 테스트에서 어떤 문제도 보이지 않습니다. 각 호출에서 하나의 폴더를 경로에서 제거합니다. –