好的,我有一个名为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 /
上的TemplateDoesNotExistprogguide / index.html中
请求方法:GET请求URL: http://127.0.0.1:8000/progguide/ Django版本:1.2.4例外类型: TemplateDoesNotExist异常值:
progguide / index.html中
还是很新的,上面的内容从我的理解看起来还不错。我错过了什么?
答案 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' , ... )
。