在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模板语法?还是我必须在模板中获取上下文数据,然后将其传递给静态文件中的函数?
答案 0 :(得分:1)
不幸的是,没有任何Django功能可让您直接执行此操作。阻止此情况的基本问题是将上下文传递到视图中render()
函数中提到的模板(或其他任何行为相同的函数,例如render_to-response()
)。最好的选择是在模板文件中使用内联js。
可以理解,为了保持代码干净,您不希望模板中包含js函数。因此,像这样获取所需的数据:
<script>
var nodes = JSON.parse('{{nodes|safe}}');
</script>
在此代码之后 导入静态js文件,您应该一切顺利,并保持代码干净和模块化。