【发布时间】:2011-05-03 04:15:37
【问题描述】:
我在 Windows XP SP3 上运行 Python 2.6.1 和 Django 1.2.1。我正在使用 JetBrains PyCharm 1.0 创建和部署我的 Django 应用程序。
我对 Python 相对缺乏经验,我开始学习 Django,并从网站 - poll 应用程序中跟随“编写你的第一个 Django 应用程序”。我被困在part 3。
当我为“编写你的第一个视图”添加简单的回调函数时,一切都很好。
当我谈到“编写实际做某事的视图”时,我遇到了障碍。
我按照说明修改了索引视图:
- 在 views.py 中添加一个新方法(注意 - 模板已从 'polls/index.html' 准备好):
- 将 index.html 模板添加到
site-templates/polls/文件夹 - 修改 settings.py 以指向
site-templates文件夹
这是我的views.py中的代码:
from django.template import Context, loader
from polls.models import Poll
from django.http import HttpResponse
def index(request):
latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
t = loader.get_template('polls/index.html')
c = Context({
'latest_poll_list': latest_poll_list,
})
return HttpResponse(t.render(c))
这是我的 settings.py 中的一行:
TEMPLATE_DIRS = ('/site-templates/')
但我在运行时仍然收到此消息:
TemplateDoesNotExist at /polls/
polls/index.html
Request Method: GET
Request URL: http://localhost:8000/polls/
Django Version: 1.2.1
Exception Type: TemplateDoesNotExist
Exception Value:
polls/index.html
异常在 loader.py 中抛出。我的调试设置如下所示:
TEMPLATE_CONTEXT_PROCESSORS
('django.core.context_processors.auth', 'django.core.context_processors.request')
TEMPLATE_DEBUG
True
TEMPLATE_DIRS
('/site-templates',)
TEMPLATE_LOADERS
('django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader')
我的目录结构如下:
我错过了什么? settings.py 不正确吗?请指教。
【问题讨论】:
-
你两次指定
TEMPLATE_DIRS的内容(第2次正确,第1次错误)。你真正使用的是哪一个? -
您可以发布您的文件夹层次结构吗?
-
第一个条目来自我的settings.py;第二个是当我调用 URL 时回显到浏览器中的内容。
-
当您将调试回溯中的值放入 settings.py 中,替换您已有的值时会发生什么?
-
现在我的应用和管理 URL 出现问题。
标签: python django django-templates django-views