Как сделать так, чтобы Django *не* разбирал "{{переменная}}" при использовании Jsrender?
Я создаю Django шаблон, который будет использовать jsrender для создания динамических Javascript шаблонов для html кода.
Однако я обнаружил, что когда я помещаю шаблон Jsrender в свой код, Django выходит из себя, потому что Django разбирает все, что находится между {{ и }} как переменную, а Jsrender использует это для своих собственных переменных. Например, шаблон в Jsrender может выглядеть следующим образом:
<script id="headerTemplate" type="text/x-jsrender">
<h1>{{:label}}</h1>
</script>
Django видит {{:label}} и пытается разобрать его, что приводит к ошибке.
Существует ли блок Django, который я могу вызвать и который заставит Django не разбирать любой текст внутри него? Или каким-либо другим способом, чтобы избежать символа {?
Вы можете включить {% verbatim %} … {% endverbatim %} тег шаблона [Django-doc]:
{% verbatim %}
<script id="headerTemplate" type="text/x-jsrender">
<h1>{{:label}}</h1>
</script>
{% endverbatim %}
Таким образом, двойные фигурные скобки будут отображаться, а не интерпретироваться.
Вы можете выбрать альтернативные разделители в JsRender, чтобы избежать конфликта с разделителями Django.
https://www.jsviews.com/#settings/delimiters
Например:
$.views.settings.delimiters("<%", "%>");
изменит синтаксис тега на <%...%>.