如何在静态文件中使用Django模板语法

时间:2019-02-02 16:41:56

标签: javascript python django django-templates

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

我有包括这样的标签之间JavaScript的HTML文件:

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

我搬到现在所有这一切,我服务的JavaScript静态.js文件。它被包含在HTML文件中是这样的:

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

除了.js文件中使用Django模板语法的部分之外,其他所有内容都运行正常。

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

1 个答案:

答案 0 :(得分:1)

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

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

在此代码之后 导入静态js文件,您应该一切顺利,并保持代码干净和模块化。