【发布时间】:2020-02-04 07:23:21
【问题描述】:
我正在尝试制作一个 django 应用程序,但遇到以下错误:
异常类型:TemplateSyntaxError 异常值:无效块 第 127 行的标记:'else',预期为 'empty' 或 'endfor'。你忘了吗 注册或加载这个标签?
我查看了代码,在我的模板文件中找不到任何拼写错误,但是模板加载正常,没有以下行:
{% endif %} {% for i in listings.paginator.page_range %} {% if
listings.number == i %}
<li class="page-item active">
<a class="page-link">{{ i }}</a>
</li>
{% else %}
<li class="page-item">
<a href="?page={{ i }}" class="page-link">{{ i }}</a>
</li>
{% endif %} {% endfor %}
我的应用程序的整个代码都在列表文件夹中的这个 github 存储库中: https://github.com/twheelertech/btre_project
我的相关模板代码在这里: https://github.com/twheelertech/btre_project/blob/master/templates/listings/listings.html
我在列表应用程序中检查了 models.py 和 views.py,但它们的格式似乎正确。
我正在使用 Windows 10、python 3.7.3、django 2.2.6
感谢您的帮助。 :)
【问题讨论】:
-
注意:上面代码中的缩进没有很好的复制过来。我把它放在大约正确的形状。
-
您确定,github 的链接准确地显示了您遇到问题的模板文件?在第 119 行中没有
else语句。一般建议。当您使用 git 时,请确保您提交了所有内容并将模板减少到最低限度,这仍然会产生错误。我敢肯定,那时问题几乎可以自我解释。如果你愿意,你甚至可以删除 html。您只想保留{% ... %}语句以查看模板引擎是否失败。 -
我已经有一段时间没有使用 django 模板了,但是我虽然在
{%之后和%}m 之前需要空格,但我看到了这样的一行{%endfor%} -
谢谢,在 github repo 中,标签位于第 127 行而不是第 119 行。当我移动代码试图修复它时,我抛出了第 119 行错误和第 127 行错误。两个行距之间没有真正改变。问题是多行标签,如下所述。
-
如您所见,准确发布失败的内容而不做任何假设非常重要。您问题中的代码 sn-p 甚至不包含有问题的多行标签。 git 存储库与您的错误描述不匹配。这使得分析和重现问题变得不必要地困难。它使问题对于搜索问题/类似问题的档案人员也不太有用。也许您可以修复问题中的行号并将代码 sn-p 更改为包含问题的内容?
标签: python django django-models django-templates django-views