我有一个模板,我正在插入包含标签:
{% include 'template.html' %}
同样在另一个地方,我希望其内容显示为原始内容。我怎样才能做到这一点?
我有一个模板,我正在插入包含标签:
{% include 'template.html' %}
同样在另一个地方,我希望其内容显示为原始内容。我怎样才能做到这一点?
您可以尝试以下方法:
page1.html
{%with flag="norender" %}
{% include "template.html" %}
{%endwith%}
模板.html
{%if flag == "norender" %}
{%verbatim%}
{%endif%}
{#your html #}
{%if flag == "norender" %}
{%endverbatim%}
{%endif%}
我最终创建了一个模板标签来执行此操作:
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>
并不是:
这是我的模板
在 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)