Django:模板索引加载index.html的内容

时间:2014-01-03 20:54:36

标签: python django

我几乎遇到了与其他用户相同的问题: Django: can't load template index
我的问题是,我的程序不是加载空白页面,而是加载index.html的内容而不是项目符号列表。

这是我的民意调查/ urls.py

from django.conf.urls import patterns, url

from polls import views

urlpatterns = patterns('',
    # ex: /polls/
    url(r'^$', views.index, name='index'),
    # ex: /polls/5/
    url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
    # ex: /polls/5/results/
    url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'),
    # ex: /polls/5/vote/
    url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'),
)

这是我的民意调查/ views.py

from django.http import HttpResponse
from django.template import RequestContext, 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 = RequestContext(request, {
        'latest_poll_list': latest_poll_list,
    })
    return HttpResponse(template.render(context))

def detail(request, poll_id):
    return HttpResponse("You're looking at poll %s." % poll_id)

def results(request, poll_id):
    return HttpResponse("You're looking at the results of poll %s." % poll_id)

def vote(request, poll_id):
    return HttpResponse("You're voting on poll %s." % poll_id)

这是我的index.html的目录

mysite的\轮询\模板\轮询\ index.html的

这是我的index.html

{% 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 %}

这是我的输出

    {% 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 %}

输出应该是所产生的网页的打印屏幕,但我不允许发布图像,但它看起来是一样的。 请帮助,我花了很多时间试图找到什么错误的

修复了缩进并修改了views.py以使用render_to_response()。这是修改后的views.py现在的样子。

from django.http import HttpResponse
from django.template import RequestContext, loader
from django.shortcuts import render_to_response

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 = RequestContext(request, {
        'latest_poll_list': latest_poll_list,
    })
    return render_to_response('polls/index.html',
                          latest_poll_list,
                          context)

def detail(request, poll_id):
    return HttpResponse("You're looking at poll %s." % poll_id)

def results(request, poll_id):
    return HttpResponse("You're looking at the results of poll %s." % poll_id)

def vote(request, poll_id):
    return HttpResponse("You're voting on poll %s." % poll_id)

顺便说一句,我使用python 3.3,Django 1.6.1以及我所关注的教程是https://docs.djangoproject.com/en/1.6/intro/tutorial03/ 即使使用了render_to_response(),结果也是一样的。

1 个答案:

答案 0 :(得分:0)

我遇到的问题有一个简单的解决方法。我不知道我有什么好主意用Microsoft Word编辑html文档,那就是创建一个额外的文件夹。基本上我删除了render_to_response()修改并使用记事本来修改html。简单的修复,但给了我很多心痛。