3

私は Django のビルトイン テンプレート システムと Underscore.js を使用しています。したがって、アンダースコアが認識してレンダリングする特別な文字をそのままにしておくために、Django が必要です。

django のバージョンを確認しましたが、1.5.3 です。

非常に簡単な例:

{% verbatim %}
   <%= content %>
{% endverbatim %}

ただし、ブラウザでこれを表示すると、ソース コードは引き続き表示されます。

&lt;%= content %&gt;

明らかに、Underscore が HTML を取得すると、解析する適切なタグが見つからないため、何もする必要がありません。すでにいくつかのトラブルシューティング ソリューションを試しましたが、いずれも機能しませんでした。

  1. 「verbatim」のスペルを間違えるとエラーが発生するため、Django のテンプレート エンジンがタグを認識していると思われます。
  2. ジャンゴのバージョンを確認しています。「django をインポートします。django.VERSION' 1.5.3 を取得します。
  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 %}
4

1 に答える 1

0

これらのブロックにコードをラップせずに、すでに試しましたか(これはストレッチだと思います)。

あなたの場合、これを正しくレンダリングするために何もする必要はありません。私のDjangoプロジェクトでも同じ設定をしています。

{% autoescape off %}(変数などを介して) ページにテキストを挿入する場合を除き、ターンする必要はありません。また{% Verbatim %}、django タグを無視する場合を除き、使用する必要もありません。

于 2014-01-16T20:26:39.673 に答える