4

我有一个模板,我正在插入包含标签:

{% include 'template.html' %}

同样在另一个地方,我希望其内容显示为原始内容。我怎样才能做到这一点?

4

3 回答 3

3

您可以尝试以下方法:

page1.html

{%with flag="norender" %}
    {% include "template.html" %}
{%endwith%}

模板.html

{%if flag == "norender" %}
    {%verbatim%}
{%endif%}
        {#your html #}
{%if flag == "norender" %}
    {%endverbatim%}
{%endif%}
于 2013-06-16T07:04:34.280 回答
2

我最终创建了一个模板标签来执行此操作:

from django import template
from django.template.loader import get_template
from django.utils.html import escape

register = template.Library()

@register.simple_tag()
def verbatim_include(name):
    """
    Example: {% verbatim_include "weblog/post.html" %}
    """
    template = get_template(name)
    return escape(template.render())

我不知道这是否是最好或最有效的方法,但它似乎对我有用(Django 1.11)。

在我的主模板中,我将包含另一个这样的模板:

<pre><code>{% verbatim_include 'my_template.html' %}</code></pre>

如果my_template.html是这样的:

<b>This is my template</b>

然后在浏览器中我会看到:

<b>This is my template</b>

并不是:

这是我的模板

于 2017-12-05T17:46:48.037 回答
0

在 Django 1.11 上测试:

from django import template
from django.template.loader import get_template
from django.utils.safestring import mark_safe


register = template.Library()


@register.simple_tag
def verbatim_include(name):
    """
    Example: {% verbatim_include "weblog/post.html" %}
    """
    template = get_template(name)
    source = template.template.source
    return mark_safe(source)
于 2019-06-07T07:20:23.013 回答