python - Django 教程第 3 部分
问题描述
我目前正在阅读 Django 教程第 3 部分(https://docs.djangoproject.com/en/3.0/intro/tutorial03/)的“编写实际做某事的视图”部分,但遇到了一个错误:
“/polls/ 处的模板语法错误”
“模板渲染期间出错”
“第 24 行的块标签无效:'<span'。您是否忘记注册或加载此标签?”
“http://127.0.0.1:8000/polls/”
这是我的views.py 代码:
from django.shortcuts import render
from django.http import HttpResponse
from .models import Question
from django.template import loader
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
context = {'latest_question_list': latest_question_list}
return render(request,'polls/index.html',context)
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)
# Create your views here.
这是我的 urls.py 代码:
from django.urls import path
from . import views
app_name = 'polls'
urlpatterns = [
# ex: /polls/
path('', views.index, name='index'),
# ex: /polls/5/
path('<int:question_id>/', views.detail, name='detail'),
# ex: /polls/5/results/
path('<int:question_id>/results/', views.results, name='results'),
# ex: /polls/5/vote/
path('<int:question_id>/vote/', views.vote, name='vote'),
]
这是我在 polls/templates/polls/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 %}
这是完整的回溯:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/polls/
Django Version: 3.0.8
Python Version: 3.8.0
Installed Applications:
['polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Template error:
In template /Users/XXXX/Documents/Programming/PycharmProjects/mysite/polls/templates/polls/index.html, error at line 24
Invalid block tag on line 24: '</span><span'. Did you forget to register or load this tag?
14 : span.s1 {font-kerning: none; color: #ad6705; -webkit-text-stroke: 0px #ad6705}
15 : span.s2 {font-kerning: none; color: #0e3c26; -webkit-text-stroke: 0px #0e3c26}
16 : span.s3 {font-kerning: none; color: #0f7001; -webkit-text-stroke: 0px #0f7001}
17 : span.s4 {font-kerning: none}
18 : span.s5 {font-kerning: none; color: #6a801f; -webkit-text-stroke: 0px #6a801f}
19 : span.s6 {font-kerning: none; color: #535353; -webkit-text-stroke: 0px #535353}
20 : span.s7 {font-kerning: none; color: #a90e1a; -webkit-text-stroke: 0px #a90e1a}
21 : </style>
22 : </head>
23 : <body>
24 : <p class="p1"><span class="s1"> {%</span><span class="s2"> </span><span class="s3"><b>if</b></span><span class="s2"> </span><span class="s4">latest_question_list</span><span class="s2"> </span><span class="s1">%} </span></p>
25 : <p class="p2"><span class="s4"><span class="Apple-converted-space"> </span><</span><span class="s3"><b>ul</b></span><span class="s4">></span></p>
26 : <p class="p1"><span class="s2"><span class="Apple-converted-space"> </span></span><span class="s1">{%</span><span class="s2"> </span><span class="s3"><b>for</b></span><span class="s2"> </span><span class="s4">question</span><span class="s2"> </span><span class="s3"><b>in</b></span><span class="s2"> </span><span class="s4">latest_question_list</span><span class="s2"> </span><span class="s1">%}</span></p>
27 : <p class="p1"><span class="s2"><span class="Apple-converted-space"> </span><</span><span class="s3"><b>li</b></span><span class="s2">><</span><span class="s3"><b>a</b></span><span class="s2"> </span><span class="s5">href</span><span class="s6">=</span><span class="s7">"/polls/</span><span class="s1">{{</span><span class="s2"> </span><span class="s4">question.id</span><span class="s2"> </span><span class="s1">}}</span><span class="s7">/"</span><span class="s2">></span><span class="s1">{{</span><span class="s2"> </span><span class="s4">question.question_text</span><span class="s2"> </span><span class="s1">}}</span><span class="s2"></</span><span class="s3"><b>a</b></span><span class="s2">></</span><span class="s3"><b>li</b></span><span class="s2">></span></p>
28 : <p class="p2"><span class="s4"><span class="Apple-converted-space"> </span></span><span class="s1">{%</span><span class="s4"> </span><span class="s3"><b>endfor</b></span><span class="s4"> </span><span class="s1">%}</span></p>
29 : <p class="p2"><span class="s4"><span class="Apple-converted-space"> </span></</span><span class="s3"><b>ul</b></span><span class="s4">></span></p>
30 : <p class="p3"><span class="s1">{%</span><span class="s2"> </span><span class="s4"><b>else</b></span><span class="s2"> </span><span class="s1">%}</span></p>
31 : <p class="p2"><span class="s4"><span class="Apple-converted-space"> </span><</span><span class="s3"><b>p</b></span><span class="s4">>No polls are available.</</span><span class="s3"><b>p</b></span><span class="s4">></span></p>
32 : <p class="p3"><span class="s1">{%</span><span class="s2"> </span><span class="s4"><b>endif</b></span><span class="s2"> </span><span class="s1">%}</span></p>
33 : <p class="p4"><span class="s4"><br>
34 : </span></p>
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/template/base.py", line 469, in parse
compile_func = self.tags[command]
During handling of the above exception ('</span><span'), another exception occurred:
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/XXXXX/Documents/Programming/PycharmProjects/mysite/polls/views.py", line 9, in index
template = loader.get_template('polls/index.html')
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/template/loader.py", line 15, in get_template
return engine.get_template(template_name)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/template/backends/django.py", line 34, in get_template
return Template(self.engine.get_template(template_name), self)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/template/engine.py", line 143, in get_template
template, origin = self.find_template(template_name)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/template/engine.py", line 125, in find_template
template = loader.get_template(name, skip=skip)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/template/loaders/base.py", line 29, in get_template
return Template(
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/template/base.py", line 156, in __init__
self.nodelist = self.compile_nodelist()
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/template/base.py", line 194, in compile_nodelist
return parser.parse()
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/template/base.py", line 471, in parse
self.invalid_block_tag(token, command, parse_until)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/template/base.py", line 530, in invalid_block_tag
raise self.error(
Exception Type: TemplateSyntaxError at /polls/
Exception Value: Invalid block tag on line 24: '</span><span'. Did you forget to register or load this tag?
解决方案
推荐阅读
- java - java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 出现在 Class.forName("com.mysql.jdbc.Driver").newInstance();
- r - 在任何包含空格的单词周围放置一个 ' '
- python - Jupyter出错后是否可以继续执行?
- arrays - 在另一个数据库中查找子文档对象
- flutter - Flutter:如何制作自定义动画下拉菜单?
- javascript - React 中的 POST 请求问题
- html - ReactBootstrap flexbox 不会拉伸到内容高度
- kubernetes - 如何在 Kubernetes 中每 10 秒运行一次 cronjob?
- azure - 在浏览器中显示 Azure blob 图像文件并且不要强制下载
- html - 如何制作这个 Facebook SVG 图标?