我在这个https://docs.djangoproject.com/en/1.5/intro/tutorial03/网站的第3个教程中。在我们为Write views that actually do something
部分的视图加载模板的地方,我遇到了困难。
第一个代码工作正常(因为没有模板加载):
from django.http import HttpResponse
from polls.models import Poll
def index(request):
latest_poll_list = Poll.objects.order_by('-pub_date')[:5]
output = ', '.join([p.question for p in latest_poll_list])
return HttpResponse(output)
但是当我使用下面的代码填充模板时,它显示与上面相同的结果(即 没有模板)
from django.http import HttpResponse
from django.template import Context, loader
from polls.models import Poll
def index(request):
latest_poll_list = Poll.objects.order_by('-pub_date')[:5]
template = loader.get_template('polls/index.html')
context = Context({
'latest_poll_list': latest_poll_list,
})
return HttpResponse(template.render(context))
模板使用是:
{% if latest_poll_list %}
<ul>
{% for poll in latest_poll_list %}
<li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
模板位于polls / template / polls / index.html,其中民意调查是我的应用程序(在教程中使用)
PS:我已经按照教程中的所有内容进行了操作。
答案 0 :(得分:0)
正如您在Django documentation中看到的,django.template.loaders.app_directories.Loader在app目录中的名为 templates 的目录中查找模板文件。
你说你的模板在“polls / template / polls / index.html”中,但它应该在“polls / templates / polls / index.html”中(注意添加的 s 到模板)。