Django 模板 {% if %} 标签空格被自动删除?VS Code 环境解决方案

在开发 Django 项目时,我遇到一个常见问题:本地 IDE(VS Code)在保存 HTML 模板时,会自动删除 {% if %} 标签两边的空格,导致模板逻辑失效。

例如,原始代码:

<option value="5" {% if page_size == 5 %}selected{% endif %}>5</option>

保存后可能被自动格式化为:

<option value="5" {% if page_size==5 %}selected{% endif %}>5</option>

这会让模板逻辑出错。


原因分析

VS Code 或其他 IDE 的自动删除空格通常是由以下几个因素引起的:

  1. "保存时格式化(Format On Save)" 功能自动调整 HTML/模板格式。

  2. HTML 格式化插件(如 Prettier、Beautify)默认不识别 Django 模板语法。

  3. VS Code 默认将 .html 文件当作普通 HTML 文件处理,导致 {% ... %} 标签被误格式化。


解决方案

方法 1:通过命令面板打开(最通用)

  1. 按下 Ctrl + Shift + P(Windows / Linux)或 Cmd + Shift + P(macOS)

  2. 输入 Preferences: Open Settings (JSON)

  3. 回车即可打开完整的 settings.json 文件

在这里你可以直接添加配置,比如:

复制代码

"editor.formatOnSave": false, "files.trimTrailingWhitespace": false


方法 2:手动打开项目级 .vscode/settings.json

  1. 在你的项目根目录,新建一个 .vscode 文件夹(如果没有)

  2. 在里面新建 settings.json

  3. 粘贴配置,例如:

html 复制代码
{
    "editor.formatOnSave": false,
    "files.trimTrailingWhitespace": false,
    "[html]": {
        "editor.formatOnSave": false
    },
    "[django-html]": {
        "editor.formatOnSave": false
    }
}

这种方法可以针对当前项目生效,不影响全局设置。

相关推荐
ZhengEnCi7 天前
Q02-Vue-React-index.html完全指南
vue.js·react.js·html
牧艺8 天前
HTML-in-Canvas 深度解析:让 Canvas 真正「吃上」HTML 这碗饭
前端·html·canvas
爱勇宝8 天前
我给自己做了一个新标签页:不登录、不打扰、打开就能用
前端·html·浏览器
越努力越幸运669 天前
多模态代码调试实战:Gemini3.5 精准捕获 HTML 隐性语法
html
呱呱复呱呱10 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
anOnion12 天前
构建无障碍组件之Menu Button pattern
前端·html·交互设计
米丘13 天前
微前端之 Web Components 完全指南
微服务·html
Metaphor69216 天前
使用 Python 将 PDF 转换为 HTML
python·pdf·html
a11177616 天前
“黑夜流星“个人引导页 网页html
java·前端·html
JieE21216 天前
手把手带你用纯 CSS 实现一个 3D 旋转魔方,这些前端基础你能打几分?
前端·css·html