我试图让它工作一百万次。我已经独自放了一个星期然后回来了。我用谷歌搜索并阅读了与此有关的每篇文章。在没有找到答案的情况下,我让不安全的傻瓜在消息组中贬低。我只想让它发挥作用。当我在Django教程的第三部分中进行操作时,我将进入为索引页面创建模板的部分,当我在浏览器中进行检查时,它会出现TemplateDoesNotExist at /polls/
。我检查了文件所有权,将其全部移动,始终更改TEMPLATES_DIR
中的setting.py
。我已将文件的内容传递给cat以确保其正常工作。为了让这个工作起来,我为奇怪的上帝牺牲了动物。我现在转向你。我确信这是最愚蠢的事情,我对此毫无疑问。我只是想让它发挥作用。
我不确定你想要/需要的代码/回溯的哪些部分,让我知道我会发布它们。我在Ubuntu 10.10上这样做
修改
来自settings.py
:
TEMPLATE_DIRS = (
"home/kevin/first/tutorial/temps"
)
这曾经住过〜,但我搬进了项目文件夹,认为这会有所帮助。
结构(省略所有编译的python文件):
~/first/tutorial/:
__init__.py,
manage.py,
polls,
settings.py,
temps,
tut.db,
urls.py
temps:
index.html
polls:
admin.py,
__init__.py,
models.py,
tests.py,
views.py,
答案 0 :(得分:8)
>>> TEMPLATE_DIRS = ( "home/kevin/first/tutorial/temps" )
>>> print TEMPLATE_DIRS
home/kevin/first/tutorial/temps
>>> type(TEMPLATE_DIRS)
<type 'str'>
这是一个字符串,而不是元组。
TEMPLATE_DIRS = ( "home/kevin/first/tutorial/temps", )
这是一个元组。一点点的Python问题。
此外,使用绝对路径而不是相对路径。
答案 1 :(得分:2)
首先,这可能与您的问题无关,但最好不要在文件中使用绝对路径。我的settings.py
中总是有以下内容:
PROJECT_ROOT = os.path.realpath(os.path.dirname(__file__))
TEMPLATE_DIRS = (
os.path.join(PROJECT_ROOT, 'templates'),
)
你的元组中的元素末尾应该总是有一个逗号,即使它是唯一的一个或最后一个元素,因此Python实际上认为它是一个元组而不是评估任何其他类型。 / p>
您还应该确保TEMPLATE_LOADERS
设置包含或看起来像这样:
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
如果这不能解决问题(你仍然应该保留上述内容),问题很可能与你要呈现的模板有关。确认您在视图中使用的模板的字符串与templates
目录中模板的相对路径正确对应。换句话说,如果视图中的模板字符串为'polls/index.html'
,请确保该文件实际位于templates/polls/index.html
。
答案 2 :(得分:1)
我在settings.py
配置文件中使用的是:
"TEMPLATE_DIRS = (
'/path/to/folder/Python-templates',
)"
它有效。我猜想(如果我错了,请纠正我)是django教程中的示例是在模板文件夹中引用模板的确切位置,即polls
。因此,在本教程中的示例中,文件的polls/index.html
路径是说index.html
文件夹中的polls
文件已在{{1}中指定的模板文件夹中}”。
答案 3 :(得分:0)
要检查的一些事项:
您是否使用绝对路径在settings.py中指定模板目录?
您是否将模板直接放入TEMPLATE_DIR目录中,或者您是否制作了一个民意调查子文件夹以将模板放入?
答案 4 :(得分:0)
我有与你描述的相同的问题,在Django教程的第三部分抛出TemplateDoesNotExist。
重新启动服务器为我解决了(没有更改任何配置)。希望有所帮助...
答案 5 :(得分:0)
这发生在我身上,因为我跳到了第三部分(我想了解模板)并且我忘了将 PollsConfig 添加到 INSTALLED_APPS
您的 mysite/settings.py
应该是这样的:
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
我做了这个改动后,模板都找到了。
这有点令人困惑,因为您不必这样做才能使您的视图起作用。但是,如果您的应用的配置不在 INSTALLED_APPS
中,模板肯定不会加载。