3
我使用的是Django的模板系統,以及Underscore.js。因此,我需要Django獨自留下Underscore認可並呈現的特殊字符。Django的逐字模板標籤不會阻止字符轉義
我已經檢查過django的版本,它是1.5.3。
一個很簡單的例子:
{% verbatim %}
<%= content %>
{% endverbatim %}
然而,當我在瀏覽器中查看此,源代碼還表示:
<%= content %>
顯然,當下劃線得到HTML的保持,它沒有工作要做,因爲它找不到合適的標籤來解析。我已經嘗試過了幾個故障排除解決方案,沒有一個是有工作:
- 拼寫錯誤「逐字」導致一個錯誤,導致我相信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 %}
verbatim僅適用於不應解析Django模板語法的情況,即'{{...}}'和'{%...%}'。在這種情況下,你有'<%...%>'這不是Django模板語法。所以別的東西在困擾着你。你可能想看看中間件,因爲那些可能會做一些不需要的內容修改。 – bouke
@bouke我明白你的意思了。我也嘗試過'{%autoescape off%}'和'{{「<%= %>」|安全}}'在我有'{%verbatim%}'的相同位置,這也沒有解決問題。不過,我認爲中間件方面並沒有什麼事情發生。 –