[英]I can't figure out how to refer to my template from a Django view
我是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
應該是什么樣的路徑?
您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'}
)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.