0

私は Django を初めて使用し、テンプレートへのパスがどのように見えるべきかを理解できません。私のプロジェクトのディレクトリ ツリーは次のようになります。

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):

from django.shortcuts import render_to_response

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

私のsettings.pyファイルの編集されたコピーはここにあります:http://pastebin.com/UMTepK9j

最後に、ブラウズしたときに表示されるエラーは次の127.0.0.1:8000とおりです。

TemplateDoesNotExist at /home/main.html

への呼び出しでパスがどのように見えるべきか誰か教えてもらえますrender_to_responseか?

4

1 に答える 1

1

settings.pyのは、フォルダーTEMPLATE_DIRSを指している必要があります。template

次のようになります。

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

それはうまくいくはずです。

注:推奨されない相対パスを使用しています。に次のようなものが必要ですsettings.py

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。これにより、テンプレートには、プロジェクトにとって重要なuser. このように呼ぶ方が良いです:

return render_to_response(
    "home/main.html",
    context_instance=RequestContext(
        request,
        {'name':'maxwell'}
    )
)
于 2013-05-01T00:13:36.487 に答える