Django模板中小于号(<)无法正常使用的问题求助
Django模板中转义小于号(<)失效问题解决
问题描述
- 在Django模板里使用转义后的小于号
<时,无论是HTML渲染还是模板条件判断(比如{% if 2<5 %}这类逻辑)都无法正常生效,但转义的大于号>能正常使用。 - 原本用于分页器功能的代码因此失效,在Visual Studio编辑器中
<还会显示红色错误提示。
你的分页器代码片段
{% for page in nums %} {% if forloop.counter >= 2 %} {% if forloop.counter == ticket_page.number ⅝} <li class="page-item active">a class="page-link" href="?page={{ forloop. counter }}">{{ forloop. counter }}</a></li> {% elif forloop.counter <= ticket_page-paginator.num_pages %} <li class="page-item"><a class="page-link" href="?page={{ forloop.counter }}">{{forloop. counter }}</a></li> {% endif %} {% endif %} {% endfor %} <!-- Dealing with the Next Pages -->
解决方法
模板逻辑中直接使用原始小于号
<
Django模板标签(比如{% if %}这类逻辑块)内部不需要转义HTML实体,直接写<即可。比如把{% if 2<5 %}改成{% if 2 < 5 %},条件判断就能正常生效。区分模板逻辑与HTML内容的转义需求
只有在HTML内容里需要显示<符号(而非用于逻辑判断)时,才需要用<转义。逻辑代码中的比较运算符必须使用原始符号。修复代码中的其他语法错误
你的代码还有几处明显错误,也会导致功能失效:- 错误字符
⅝},应该是%},属于模板语法错误; ticket_page-paginator.num_pages里的-要改为.,正确写法是ticket_page.paginator.num_pages(Django中访问对象属性使用点号);- 有个
<a标签漏写左尖括号,应该是<a class="page-link" ...>。
- 错误字符
内容的提问来源于stack exchange,提问作者Shooq Alzarouni
相关产品推荐
相关产品推荐

