【问题标题】:How to use django template syntax in static files如何在静态文件中使用 django 模板语法
【发布时间】:2019-06-26 22:54:23
【问题描述】:

在 Django 模板中包含静态文件有很多可用的文档。但是,我找不到任何关于如何在静态文件中使用 Django 模板语法的信息。

我有一个 html 文件,其中包含这样的标签之间的 javascript:

var nodes = JSON.parse('{{nodes|safe}}');

我现在将所有 javascript 移动到我正在服务的静态 .js 文件中。它包含在 HTML 文件中,如下所示:

<script src="{% static 'citator/analysis.js' %}" type="text/javascript"></script>

除了 .js 文件中使用 Django 模板语法的部分之外,一切运行良好。

我的问题是,如果 javascript 不是直接在模板中,而是作为静态文件并导入,有没有办法在 javascript 中使用 Django 模板语法?还是我必须在模板中获取上下文数据,然后将其传递给静态文件中的函数?

【问题讨论】:

    标签: javascript python django django-templates


    【解决方案1】:

    不幸的是,没有任何 Django 功能可以让您直接执行此操作。阻止这种情况的根本问题是上下文被传递给视图中render() 函数中提到的模板(或任何其他行为相同的函数,例如render_to-response())。这里最好的选择是在模板文件中使用内联 js。 可以理解,为了保持代码干净,您不希望模板中包含 js 函数。所以,像这样获取你想要的数据:

    <script>
        var nodes = JSON.parse('{{nodes|safe}}');
    </script>
    

    在此代码之后导入您的静态 js 文件,然后您就可以开始了,保持您的代码干净和模块化。

    【讨论】:

    • 好的。谢谢你!
    猜你喜欢
    • 2020-11-13
    • 2012-12-10
    • 2023-03-29
    • 2020-10-02
    • 2016-11-11
    • 1970-01-01
    • 2016-04-03
    • 2013-06-18
    • 2021-03-21
    相关资源
    最近更新 更多