问题:
{% extends 'base.html' %} {% block title %} Dashboard {% endblock %} {% block pagetitle %}
成为
{% extends 'base.html' %} {% block title %} Dashboard {% endblock %} {% block
pagetitle %}
请注意,{% tag %}
被新行打断。这会导致django模板的语法错误。
我已经尝试了大多数顶级的django模板扩展,这并不能解决这个问题。
我也尝试了这些设置:
"[html]": {
"editor.formatOnSave": false,
},
"html.format.wrapLineLength": 0,
"html.format.enable": false,
"prettier.disableLanguages": ["html"]
期望行为:
1.自动格式化 *.html文件,同时保留django模板标签,而不是用换行符打破它们。
1.次优(但可接受)行为:不要格式化 *.html文件。
6条答案
按热度按时间aiqt4smr1#
我也遇到了同样的问题,我发现解决这个问题的唯一方法是禁用默认的HTML格式化程序。不幸的是,我没有找到一种方法来使它正确地格式化Django模板标记。你可以做同样的事情,如果你去VS代码首选项>设置>用户>扩展> HTML和取消选中'启用/禁用默认HTML格式化'。
ldfqzlk82#
我通过以下建议解决了这个问题:https://stackoverflow.com/a/73892745/1257347
TLDR:安装djLint扩展(记住执行
$ pip install djlint
)oxf4rvwz3#
我通过简单地在被破坏的
{% tag %}
之间添加{{""}}
来使它工作。示例:
4ioopgfo4#
This不适合我。
我发现的破解方法是将vscode语言设置为jinja,而不是自动检测的html
reference
vktxenjb5#
我也刚刚经历了django模板标签上的vs-code错误行为(即删除花括号)。
我不喜欢仅仅为了支持模板而禁用HTML格式的想法。vs-code首选项/设置/扩展/HTML:禁用(取消选中)“HTML>Format:Enable”)。这可以说是一种倒退,但它确实阻止了vs-code的错误行为。
相反,我选择安装(与代码首选项/扩展)'Django'扩展,由Baptiste Darthenay。这是一种更好的方式,因为它可以优雅地工作,保留了原生与代码的HTML格式,并包括一组很好的django片段,这可以在嵌入模板代码时节省我的按键。Tada!
顺便说一句,在找到Baptiste的真棒扩展之前,我还尝试启用vs-code HTML格式,并启用'HTML>Format:Templating',它承诺“荣誉django和其他模板语言标签”;它没有。
oxalkeyp6#
打开settings.json并添加这一行。对我很有效
},