Django教程帮助 - “找不到:/polls/index.html"

时间:2018-01-12 16:47:11

标签: python html django

通过Django教程并遇到了一个我无法弄清楚的问题。帮助将不胜感激。我在这里错过了什么?运行本教程几次,现在双重检查所有工作,代码似乎匹配。

错误:“未找到:/polls/index.html”

mysite的/ urls.py:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^polls/', include('polls.urls')),

]

轮询/模板/轮询/ index.html中

{% if latest_question_list %}
    <ul>
    {% for question in latest_question_list %}
        <li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}

轮询/ urls.py

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
    # ex: /polls/5/
    url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
    # ex: /polls/5/results/
    url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name='results'),
    # ex: /polls/5/vote/
    url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name='vote'),
]

轮询/ views.py

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse
from .models import Question


def index(request):
    latest_question_list = Question.objects.order_by('-pub_date')[:5]
    template = loader.get_template('polls/index.html')
    context = {
        'latest_question_list': latest_question_list,
    }
    return HttpResponse(template.render(context, request))

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

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

def results(request, question_id):
    response = "You're looking at the results of question %s."
    return HttpResponse(response % question_id)

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

1 个答案:

答案 0 :(得分:0)

be care about the structure

docs

  

模板命名空间

     

现在我们可以直接放置模板了   在民意调查/模板中(而不是创建另一个民意调查子目录),   但这实际上是一个坏主意。 Django将选择第一个   它查找名称匹配的模板,以及是否具有   在其他应用程序中使用相同的名称,Django将无法   区分它们。我们需要能够将Django指向   正确的方法,最简单的方法是通过命名它们的间距。   也就是说,将这些模板放在另一个名为的目录中   应用程序本身。

在setting.py中, 替换为此部分:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]