VSCode、Django 和 javascript:为什么 VSCode 在使用 {{ }} 时指示错误?

VSCode, Django and javascript: Why does VSCode indicate an error when I use {{ }}?

提问人:AntonioR 提问时间:10/9/2023 更新时间:10/10/2023 访问量:35

问:

我有以下代码在我的 html 文件中工作:

    {% for stocks_and_pair_data in stocks_and_pair_data_list %}
        <script>
            var ctxClose = document.getElementById('ChartOfClosePrices{{ forloop.counter }}');

            new Chart(ctxClose, {
                type: 'line',
                data: {
                    labels: {{stocks_and_pair_data.dates|safe}},
                    datasets: [{
                        label: '{{ stocks_and_pair_data.stock1_name|safe }}',
                        data: {{stocks_and_pair_data.stock1_close_prices|safe}}
                    },{
                        label: '{{ stocks_and_pair_data.stock2_name|safe }}',
                        data: {{stocks_and_pair_data.stock2_close_prices|safe}}
                    }]
                }
            });
        </script>
    {% endfor %}

但是 VSCode 在“labels”行和两个“data”行都指示错误“Property assignment expected”,这是我使用不带引号的双 {{ }} 的地方。我不能在那里使用引号,因为这些是列表,而不是字符串。

尽管代码有效,但我做错了吗?我应该怎么做才能纠正它?

JavaScript Python Django

评论

1赞 thebjorn 10/10/2023
你可能会让它与其中一个 django 插件一起使用,但混合 js 和 django 模板通常不是一个好主意 - 它很快就会变得混乱,并且以后很难将 js 提取到它自己的文件中......
1赞 AntonioR 10/10/2023
你是赖特。安装一个名为“Django Templates”的扩展使 VSCode 识别了这个 synthax。请把它作为一个答案,我会把它标记为正确。答:感谢您提供提取 js 文件的建议。

答:

1赞 thebjorn 10/10/2023 #1

VS Code 依赖于插件来理解大多数语言。一个 django 模板插件(例如 Django、Django 模板等)将解决这个问题。

旁白:请注意,将 Django 模板语言与 javascript 混合可能会使以后将 javascript 提取到自己的文件中变得非常困难(用于捆绑/转译/等)。通常最好将 django 数据提供给执行循环的 javascript 函数。