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

Django 3.2基础模板出现'raw'无效块标签报错问题咨询

Django 3.2 raw标签报错原因及解决方案

报错根因

  • Django 3.2原生模板系统不存在内置的raw块标签,该语法属于其他模板引擎(如Jinja2、静态站点生成器模板)或第三方扩展的功能,直接在Django原生模板中使用必然会触发「未注册/加载标签」的报错。
  • 网传的{% block raw %}修改方案完全是误导:block是Django模板继承的专属语法,作用是定义可被子模板覆写的块区域,该写法本质是声明了一个名为raw的继承块,和你预期的「不解析模板变量」功能毫无关联。而Django规定同一模板中不能重复定义同名块,才会触发「only one raw block allowed」报错。
  • 若替换为Django内置的{% verbatim %}标签仍报错,大概率是拼写错误、标签未正确闭合,或者父模板存在语法冲突;但你的场景下完全不需要使用这类标签。

修复方案

你添加raw标签属于多余操作:Django模板中直接使用{{ 变量名 }}语法就会自动渲染对应变量的值,不需要额外包裹标签,直接删除代码中所有的{% raw %}和{% endraw %}标记即可正常运行。
修改后的核心代码示例:

<img
  src="{{product.image}}"
  class="img-fluid"
  style="padding: 30px"
  alt="{{product.title}}"
/>
<div class="card-body">
  <h5 class="card-title">{{product.title}}</h5>
  <p class="card-text">
    A beautiful {{product.title}} for ${{product.price}}.
  </p>
  <a href="/" class="btn btn-primary">Buy Now</a>
</div>

补充说明:仅当你需要在模板中输出{{ }}、{% %}这类Django模板语法字面量(比如前端模板代码片段)时,才需要使用{% verbatim %}标签包裹对应内容。

内容的提问来源于stack exchange,提问作者E Cheadle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:18:00