首页 文章

Django TemplateDoesNotExist

提问于
浏览
2

好吧,我有一个名为tvlistings的项目和一个名为progguide的应用程序 .

在我的tvlistings目录中,我在这些文件中有以下内容

settings.py

TEMPLATE_DIRS = (
    '/home/paul/tvlistings/progguide/templates',
)

urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'^progguide/', include('progguide.urls')),
)

在我的progguide目录中,我有

urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('progguide.views',
    (r'^$', 'index'),
    (r'^(?P<prog_id>\d+)/$', 'programme'),
)

views.py

from django.shortcuts import render_to_response
from progguide.models import *

def index(request):
    chan_prog_list = ChannelProgramme.objects.all().order_by('progdate','starttime')[:5]
    return render_to_response('progguide/index.html', {'chan_prog_list': chan_prog_list})

在/ home / paul / tvlistings / progguide / templates我有

的index.html

{% if chan_prog_list % }
    <ul>
    {% for prog in chan_prog_list %}
        <li>{{ prog.channelid.channelname}} {{ prog.programmeid.progtitle }}</li>
    {% endfor %}
    </ul>
{% else %}
    <p>No programmes.</p>
{% endif %}

如果我尝试加载http://localhost:8000/progguide我明白了

TemplateDoesNotExist at / progguide / progguide / index.html请求方法:GET请求URL:http://127.0.0.1:8000 /progguide / Django版本:1.2.4异常类型:TemplateDoesNotExist异常值:progguide / index.html

对于这个还是很新的,从我的理解来看,上面看起来还不错 . 我错过了什么?

3 回答

  • 1

    虽然它实际上应该是你,但你很接近

    return render_to_response('index.html', {'chan_prog_list': chan_prog_list})
    
  • 2

    传递给 render_to_response 的字符串是模板的相对路径,从您在TEMPLATE_DIRS中给出的任何值开始 . 因此,鉴于您在该设置中的内容,您应该只使用 render_to_response('index.html' , ... ) .

  • 1

    你错过了模板文件夹吗?您可以使用:

    return render_to_response('progguide/templates/index.html', {'chan_prog_list': chan_prog_list})
    

相关问题