我正在使用Django内置的模板系统,以及Underscore.js。因此,我需要Django独自留下Underscore识别和呈现的特殊字符。
我检查了django的版本,它是1.5.3。
一个非常简单的例子:
{% verbatim %}
<%= content %>
{% endverbatim %}
但是,当我在浏览器中查看时,源代码仍会显示:
<%= content %>
显然,当Underscore获取HTML时,由于无法找到要解析的正确标记,因此无需执行任何操作。我已经尝试了几个故障排除解决方案,但没有一个有效:
以下是我的模板的完整文本,以便提供任何进一步的线索。除{%verbatim%}之外的所有标签都执行它们应该执行的任务。
{% extends "base.html" %}
{# Determine which navigation element is 'active' #}
{% block nav %}
{% with 'active' as lessons_active %}
{{ block.super }}
{% endwith %}
{% endblock %}
{% block content %}
<div class="col-md-2 lesson-left-menu">
<a href="#"><span class="glyphicon glyphicon-arrow-left"></span> Back to Lessons</a>
</div>
<div class="col-md-8 lesson-container">
<div class="slide multi-slide">
<div class="lesson-header">
{% verbatim %}
<h3><%= moduleTitle %> <small><%= title %></small></h3>
{% endverbatim %}
</div>
<!-- Populate dyn. based on # slides in lesson -->
{% spaceless %}
<div class="lesson-progress">
<div class="bar complete" style="width: 20%"></div>
<div class="bar complete" style="width: 20%"></div>
<div class="bar" style="width: 20%"></div>
<div class="bar" style="width: 20%"></div>
<div class="bar" style="width: 20%"></div>
</div>
{% endspaceless %}
{% verbatim %}
<%= content %>
{% endverbatim %}
<div class="well">
<ul class="answers short-multi greek-text" style="min-height: 40px">
</ul>
</div>
{% spaceless %}
{% verbatim %}
<% _.each(options, function(optionSet) { %>
<ul class="options short-multi greek-text inline">
<% _.each(optionSet, function(option) { %>
<li><a href="#" data-value="<%= option.value %>"><%= option.display %></a></li>
<% }); %>
</ul>
<% }); %>
{% endverbatim %}
{% endspaceless %}
</div>
</div>
{% endblock %}
答案 0 :(得分:0)
你是否已经尝试过而没有将代码包装在这些块中(我知道这是一个延伸)。
在您的情况下,您不必做任何事情来正确渲染。我在我的Django项目中有相同的设置。
除非您将文本注入页面(通过变量或其他内容),否则不必转向{% autoescape off %}
除非您想忽略django标记,否则不必使用{% Verbatim %}
。