如何将django模板中的多行html包含到javascript变量中

goz*_*lli 12 django django-templates addslashes

从Django模板,我想包含一个文件的html片段,说mysnippet.html:

<div>
    blah
</div>
Run Code Online (Sandbox Code Playgroud)

进入一个javascript变量:

<script type="text/javascript">
     var myvar = {% include 'mysnippet.html' %}
</script>
Run Code Online (Sandbox Code Playgroud)

问题是新线路需要转义.否则,Javascript会抱怨"未终止的字符串文字".

我知道可以添加斜杠,{{x|addslashes}}但我不知道如何为{% include %}标签做.

Jer*_*zyk 19

你试过filter模板标签吗?

{% filter addslashes %}{% include 'mysnippet.html' %}{% endfilter %}
Run Code Online (Sandbox Code Playgroud)

更好地逃避所有特殊字符是使用escapejs过滤器:

{% filter escapejs %}{% include 'mysnippet.html' %}{% endfilter %}
Run Code Online (Sandbox Code Playgroud)