Django TemplateDoesNotExist

时间:2011-01-21 23:40:55

标签: python django url model views

好的,我有一个名为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,我会

  

/ progguide /

上的TemplateDoesNotExist      

progguide / index.html中

     

请求方法:GET请求URL:    http://127.0.0.1:8000/progguide/   Django版本:1.2.4例外类型:    TemplateDoesNotExist异常值:

     

progguide / index.html中

还是很新的,上面的内容从我的理解看起来还不错。我错过了什么?

3 个答案:

答案 0 :(得分:2)

虽然它实际上应该是

,但你很接近
return render_to_response('index.html', {'chan_prog_list': chan_prog_list})

答案 1 :(得分:1)

您是否缺少模板文件夹? 您可以使用:

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

答案 2 :(得分:1)

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