我正在使用 Django 的内置模板系统以及 Underscore.js。因此,我需要 Django 留下 Underscore 识别和呈现的特殊字符。
我检查了django的版本,它是1.5.3。
一个非常简单的例子:
{% verbatim %}
<%= content %>
{% endverbatim %}
但是,当我在浏览器中查看时,源代码仍然显示:
<%= content %>
显然,当 Underscore 获得 HTML 时,它没有工作要做,因为它找不到要解析的正确标签。我已经尝试了几个故障排除解决方案,但都没有奏效:
- 拼写错误 'verbatim' 会导致错误,让我相信 Django 的模板引擎正在识别标签。
- 检查 django 版本。用'import django; django.VERSION' 我得到 1.5.3。
- 使用 {% autoescape off %} 标记,同样不起作用(可能是相关问题)。
这是我的模板的完整文本,以防提供任何进一步的线索。除了 {% 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 %}