2013-05-01 1 views
0

장고를 처음 사용하고있어서 내 템플리트의 경로가 어떤 모양인지 알 수 없습니다. 내 프로젝트의 디렉토리 트리는 다음과 같습니다 : 내 settings.py 파일의 편집 됨 사본을 여기에서 찾을 수 있습니다장고보기에서 내 템플리트를 참조하는 방법을 알아낼 수 없습니다.

from django.shortcuts import render_to_response 

def home(request): 
    return render_to_response("home/main.html", {"name" : "maxwell"}) 

: http://pastebin.com/UMTepK9j

다음
blog 
blog/blog 
blog/blog/__init__.pyc 
blog/blog/wsgi.pyc 
blog/blog/urls.py 
blog/blog/urls.pyc 
blog/blog/wsgi.py 
blog/blog/__init__.py 
blog/blog/settings.py 
blog/blog/settings.pyc 
blog/home 
blog/home/views.py 
blog/home/templates 
blog/home/templates/home 
blog/home/templates/home/main.html 
blog/home/__init__.pyc 
blog/home/urls.py 
blog/home/urls.pyc 
blog/home/models.py 
blog/home/tests.py 
blog/home/__init__.py 
blog/home/views.pyc 
blog/manage.py 

이 (blog/home/view.py에서) 내 생각이다 마지막으로 여기 127.0.0.1:8000으로 이동하면 오류가 발생합니다.

TemplateDoesNotExist at /home/main.html 

render_to_response에 전화를 걸면 어떤 경로를 찾아야할까요?

+0

settings.py를 볼 수 있습니까? –

+0

@Jeff 내 settings.py의 사본에 대한 링크를 포함하는 수정 된 게시물 –

답변

1

settings.py의 TEMPLATE_DIRStemplate 폴더를 가리켜 야합니다.

TEMPLATE_DIRS = (
    '../home/templates' 
) 

작동합니다 :

이 같은이어야한다.

참고 : 상대 경로는 사용하지 않는 것이 좋습니다.

import os 
settings_dir = os.path.dirname(__file__) 
PROJECT_ROOT = os.path.abspath(os.path.dirname(settings_dir)) 

... 

TEMPLATE_DIRS = (
    os.path.join(PROJECT_ROOT, '../home/templates/'), 
) 

는 또한, 당신은 render_to_response를 호출하고 그것을 RequestContext을 거치지 않고 : 당신은 당신의 settings.py에서 이런 일이 있어야합니다. 이 템플릿을 사용하면 프로젝트에 중요한 변수가 부족하여 user과 같은 템플릿을 사용할 수 없습니다. 다음과 같이 호출하는 것이 좋습니다.

return render_to_response(
    "home/main.html", 
    context_instance=RequestContext(
     request, 
     {'name':'maxwell'} 
    ) 
) 
관련 문제