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