学习Django时遇到TemplateSyntaxError,无法解析section=="dashboard"表达式
Django TemplateSyntaxError 报错排查
核心错误原因
你触发报错的核心问题是Django模板语法的运算符书写不符合规范。
报错提示:
Could not parse the remainder: '"dashboard"' from 'section"dashboard"'
问题出在代码第18行的条件判断语句:{% if section=="dashboard" %}。Django模板语法强制要求,所有比较运算符的两侧必须保留空格,你没有在==符号左右加空格,模板引擎会尝试把section=="dashboard"整体识别为一个变量名,无法解析后半段的=="dashboard"部分,因此抛出语法错误。
修正方案
把对应行的代码调整为如下写法即可:
<li {% if section == "dashboard" %}class="selected" {% endif %}> <a href="{% url 'dashboard' %}">My dashboard</a> </li>
额外注意事项
- 不止
==,Django模板中用到的!=、>、<、>=、<=等所有运算符,两侧都必须添加空格才能被正确解析 - 模板语法内的字符串常量直接用单/双引号包裹即可,不需要额外做HTML转义处理
内容的提问来源于stack exchange,提问作者francisco
相关产品推荐
相关产品推荐

