2012-04-24 76 views
1

生命统计: 的Ubuntu 11.04 的Django 1.3.1TemplateDoesNotExist错误,但模板事实上确实存在

我正在草堆由嗖支持。该网站的其余部分功能正常,但是当我尝试搜索时,对于包含在templates/search/search.html中的模板,我得到一个TemplateDoesNotExist例外。模板加载器显然能够读取search.html,或者它不知道试图获取include。包含的文件_resultPage.html位于相同的目录中,具有与search.html相同的权限和相同的所有者和组。而且,这不仅仅是这一个包括。如果我注释掉它,它会在下一个包含的文件中出错。

任何想法?

+0

...什么模板? – 2012-04-24 02:04:31

+0

我不确定你的意思。 'search.html'中包含的任何模板。它加载'search.html',但是包含在其中的任何内容都失败。尽管如此,我的问题仍然存在,所以你让我猜测自己。 – 2012-04-24 02:07:44

+0

“什么模板?”如“在问题中的模板在哪里,呃,在你的问题中?”。 – 2012-04-24 02:11:08

回答

0

我是时间紧迫下,所以我干脆卷起所有模板中包含右转入search.html并把它称为一天。

2

include标记依赖于django.template.loader.get_template,它以正常方式而不是相对路径搜索模板。你使用"_resultPage.html"还是"search/_resultPage.html"。如果使用第一种形式,则'template/search/search'的绝对路径必须在TEMPLATE_DIRS之内。您可以检查通过执行以下操作:

>>> from django.template.loader import get_template 
>>> get_template('_resultPage.html') 
+0

我正在使用'{%include'search/_resultPage.html'%}'。 – 2012-04-25 01:29:50

+0

@ChrisPratt这很奇怪。你有想过吗? – okm 2012-04-26 13:10:17

+0

不幸的是,没有。我时间紧迫,所以我只是把所有包含的模板都放到search.html中。 – 2012-04-26 14:21:01