You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模板中小于号(<)无法正常使用的问题求助

Django模板中转义小于号(<)失效问题解决

问题描述

  • 在Django模板里使用转义后的小于号&lt;时,无论是HTML渲染还是模板条件判断(比如{% if 2&lt;5 %}这类逻辑)都无法正常生效,但转义的大于号&gt;能正常使用。
  • 原本用于分页器功能的代码因此失效,在Visual Studio编辑器中&lt;还会显示红色错误提示。

你的分页器代码片段

{% 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 -->

解决方法

  1. 模板逻辑中直接使用原始小于号<
    Django模板标签(比如{% if %}这类逻辑块)内部不需要转义HTML实体,直接写<即可。比如把{% if 2&lt;5 %}改成{% if 2 < 5 %},条件判断就能正常生效。

  2. 区分模板逻辑与HTML内容的转义需求
    只有在HTML内容里需要显示<符号(而非用于逻辑判断)时,才需要用&lt;转义。逻辑代码中的比较运算符必须使用原始符号。

  3. 修复代码中的其他语法错误
    你的代码还有几处明显错误,也会导致功能失效:

    • 错误字符⅝},应该是%},属于模板语法错误;
    • ticket_page-paginator.num_pages里的-要改为.,正确写法是ticket_page.paginator.num_pages(Django中访问对象属性使用点号);
    • 有个<a标签漏写左尖括号,应该是<a class="page-link" ...>。

内容的提问来源于stack exchange,提问作者Shooq Alzarouni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 04:56:06