gpt4 book ai didi

Django的逐字模板标签不防止字符转义

转载 作者:行者123 更新时间:2023-12-01 07:48:07 25 4
gpt4 key购买 nike

我正在使用 Django 的内置模板系统以及 Underscore.js。因此,我需要 Django 不理会 Underscore 识别和呈现的特殊字符。

我查看了django的版本,是1.5.3。

一个非常简单的例子:

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

但是,当我在浏览器中查看时,源代码仍然显示:

&lt;%= content %&gt;

显然,当 Underscore 获取 HTML 时,它没有任何工作要做,因为它找不到要解析的正确标记。我已经尝试了几个故障排除解决方案,但都没有奏效:

  1. “verbatim”的拼写错误导致错误,让我相信 Django 的模板引擎正在识别标签。
  2. 正在检查 Django 版本。用'导入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 %}

最佳答案

您是否已经尝试过不将代码包装在这些 block 中(我知道这是一个延伸)。

在您的情况下,您无需执行任何操作即可正确渲染。我在我的 Django 项目中有相同的设置。

你不应该关闭 {% autoescape off %} 除非你在页面中注入(inject)文本(通过变量或其他东西)并且你不应该使用 { % Verbatim %} 除非你想忽略 django 标签。

关于Django的逐字模板标签不防止字符转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19321301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com