使用 Jsrender 时如何让 Django *不* 解析“{{variable}}”?
How to have Django *not* parse "{{variable}}" when using Jsrender?
我正在构建一个 Django 模板,它将使用 jsrender 以便为 html 代码构建动态 Javascript 模板。
但是,我发现当我在我的代码中放置一个 Jsrender 模板时,Django 会崩溃,因为 Django 将 {{
和 }}
之间的任何内容解析为变量,而 Jsrender 将其用于自己的变量。例如,Jsrender 中的模板可能如下所示:
<script id="headerTemplate" type="text/x-jsrender">
<h1>{{:label}}</h1>
</script>
Django 看到 {{:label}}
并尝试解析它,这导致错误。
有没有我可以调用的 Django 块,它会使 Django 不 解析其中的任何文本?或者以其他方式转义 {
字符?
您可以开启 {% verbatim %} … {% endverbatim %}
template tag [Django-doc]:
{% <strong>verbatim</strong> %}
<script id="headerTemplate" type="text/x-jsrender">
<h1>{{:label}}</h1>
</script>
{% <strong>endverbatim</strong> %}
这将因此呈现双花括号,而不是解释它们。
您可以在JsRender中选择替代分隔符,以避免与Django分隔符冲突。
https://www.jsviews.com/#settings/delimiters
例如:
$.views.settings.delimiters("<%", "%>");
将标记语法更改为 <%...%>
。
我正在构建一个 Django 模板,它将使用 jsrender 以便为 html 代码构建动态 Javascript 模板。
但是,我发现当我在我的代码中放置一个 Jsrender 模板时,Django 会崩溃,因为 Django 将 {{
和 }}
之间的任何内容解析为变量,而 Jsrender 将其用于自己的变量。例如,Jsrender 中的模板可能如下所示:
<script id="headerTemplate" type="text/x-jsrender">
<h1>{{:label}}</h1>
</script>
Django 看到 {{:label}}
并尝试解析它,这导致错误。
有没有我可以调用的 Django 块,它会使 Django 不 解析其中的任何文本?或者以其他方式转义 {
字符?
您可以开启 {% verbatim %} … {% endverbatim %}
template tag [Django-doc]:
{% <strong>verbatim</strong> %}
<script id="headerTemplate" type="text/x-jsrender">
<h1>{{:label}}</h1>
</script>
{% <strong>endverbatim</strong> %}
这将因此呈现双花括号,而不是解释它们。
您可以在JsRender中选择替代分隔符,以避免与Django分隔符冲突。
https://www.jsviews.com/#settings/delimiters
例如:
$.views.settings.delimiters("<%", "%>");
将标记语法更改为 <%...%>
。