Django TemplateDoesNotExist例外

时间:2012-05-18 22:16:22

标签: django templates exception

我试图使用django-endless-pagination twitter pagination,但是Django正在抛出异常,我在调试它时遇到了麻烦。

创建这些模板后:

search_results.html:

<h2>Entries:</h2>
{% include page_template %}

results.html:

{% for object in objects %}
    {# your code to show the entry #}
{% endfor %}

我将它们添加到我的项目模板目录中。然后我创建了这个视图:

def search(request):
    if 'q' in request.GET:  #Need to add input variable to html code
        q = request.GET['q']
        if q:
            stuff = Stuff.objects.filter(name__icontains=q)
            template = "search_results.html"
            page_template = "results.html"
            if request.is_ajax():
                template = page_template
            return render_to_response(template, locals())
    return render_to_response('search_page.html')

当我转到结果网址时,我得到: 例外类型: TemplateDoesNotExist

异常位置: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/template/loader.py in find_template,138行

模板加载器事后

Django尝试按以下顺序加载这些模板: 使用loader django.template.loaders.filesystem.Loader: / Users / some_account / Dropbox / code / project / project / html(文件存在) / Users / some_account / Dropbox / code / project / project / course_database / templates(文件存在) 使用loader django.template.loaders.app_directories.Loader: / Users / some_account / Dropbox / code / project / project / course_database / templates(文件存在) /Library/Python/2.7/site-packages/endless_pagination/templates(文件存在) /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/auth/templates(文件存在) /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/admin/templates(文件存在) /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/admindocs/templates(文件存在)

模板加载期间的错误位于包含以下内容的行:{% include page_template %}

为什么我会收到此异常,我该如何解决?

2 个答案:

答案 0 :(得分:0)

在您的search_results.html页面中,您有{% include page_template %},我假设您正在使用locals()将其传递到模板中。你能在模板上输出它来验证page_template的值是多少?将{{ page_template }}代替{% include page_template %}以验证它是否获得了正确的网址。

答案 1 :(得分:0)

我是Django的新手,我将已安装的应用程序说明放在“模板区域”中,并显示此错误。

再次检查为什么将路线放入模板中,
模板列表和已安装的应用程序列表均以djang.something开头,但是它们是不同的。