如何让模板在django中工作?

时间:2013-06-18 10:39:39

标签: django

我在这个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:我已经按照教程中的所有内容进行了操作。

1 个答案:

答案 0 :(得分:0)

正如您在Django documentation中看到的,django.template.loaders.app_directories.Loader在app目录中的名为 templates 的目录中查找模板文件。

你说你的模板在“polls / template / polls / index.html”中,但它应该在“polls / templates / polls / index.html”中(注意添加的 s 到模板)。