我正在做Django教程,第3部分:https://docs.djangoproject.com/en/dev/intro/tutorial03/
我目前在views.py中有这个文字:
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)
当我去的时候这是有效的:
http://localhost:8000/polls/
,它显示记录
问题是当我采取下一步并将views.py更改为:
时from django.shortcuts import render
from polls.models import Poll
def index(request):
latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
context = {'latest_poll_list': latest_poll_list}
return render(request, 'polls/index.html', context)
从http://localhost:8000/polls/
它显示以下错误:
在/ polls /上的TemplateDoesNotExist
从http://localhost:8000/polls/index.html
开始显示以下错误:
找不到页面(404)
我的mysite / urls.py设置为:
urlpatterns = patterns('',
url(r'^polls/', include('polls.urls')),
url(r'^admin/', include(admin.site.urls)),
)
我将poll / views.py设置为:
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
我的TEMPLATE_DIRS设置为:
'/path/to/mysite/templates'
为什么页面不会加载新代码?
答案 0 :(得分:0)
您不会显示整个TEMPLATE_DIRS
设置。但我怀疑你有这个:
TEMPLATE_DIRS = (
'/path/to/mysite/templates'
)
当你真的应该这样做时:
TEMPLATE_DIRS = (
'/path/to/mysite/templates',
)
请注意字符串结尾后的额外逗号。 Python中的单元素元组需要逗号 - 否则,它只是括号中的一个字符串。
答案 1 :(得分:0)
在templates目录中创建一个名为polls
的文件夹,并在其中创建一个index.html
文件,其中包含以下内容。
<html>
<body>
<ul>
{% for p in latest_poll_list %}
<li>{{ p.question }}</li>
{% endfor %}
</ul>
</body>
</html>