包含模板标记的Django模板变量,ex{{{%some_tag%}}
我有一个接收列表上下文变量tags\u list的模板。我需要迭代这个列表,在模板中“插入”标记,如下所示:包含模板标记的Django模板变量,ex{{{%some_tag%}},django,django-templates,Django,Django Templates,我有一个接收列表上下文变量tags\u list的模板。我需要迭代这个列表,在模板中“插入”标记,如下所示: {% for tag in tags_list %} {{ tag.tag }} {% endfor %} {% for graph_row in graph_rows %} <div class="row"> {% for graph in graph_row %} <div class="col-md-{{
{% for tag in tags_list %}
{{ tag.tag }}
{% endfor %}
{% for graph_row in graph_rows %}
<div class="row">
{% for graph in graph_row %}
<div class="col-md-{{ graph.width }}">
{{ graph.graph }}
</div>
{% endfor %}
</div>
{% endfor %}
当呈现时,它返回tag.tag的文本值“{%tagxxx%}”,而不是呈现的标记
如何使模板呈现呈现上下文变量的值?或者,是否有一个过滤器,一种反向逐字记录,它将导致呈现上下文变量的值
更新的背景信息
标签列表是通过一个相当复杂的过程创建的,该过程涉及从表/模型字段执行一些用户提供的文本。真实模板的相关部分如下所示:
{% for tag in tags_list %}
{{ tag.tag }}
{% endfor %}
{% for graph_row in graph_rows %}
<div class="row">
{% for graph in graph_row %}
<div class="col-md-{{ graph.width }}">
{{ graph.graph }}
</div>
{% endfor %}
</div>
{% endfor %}
{graph_rows%}
{graph_row%}中的图形为%
{{graph.graph}}
{%endfor%}
{%endfor%}
图形值如下所示:{'graph':'{%piechart data1%}','width':3}
请注意,上下文变量graph_rows中条目的顺序与行中图形的顺序一样重要,因为这决定了图形在页面上的位置。保持此顺序对于方案正确工作至关重要
目前,view函数只需执行{%include…%}即可获得上面的模板段,以正确的顺序进行渲染。这种方法简单明了
正如有人建议的那样,我可以在view函数中执行模板渲染,但这会使设计变得有点复杂,如果有一种简单的方法触发{graph.graph}的渲染,我希望避免这样做。另外请注意,通过将渲染移动到视图中,我失去了从任意位置(特别是表字段)轻松获取模板的能力。我相信我可以为您提供一种获得所需结果的方法,但如果您可以提供一些上下文,则可能有更好的方法来实现所需功能 无论如何,您可以在view.py中执行以下操作:
tags_list = [
Template('{% load my_tags %}{% ' + t.tag + ' %}').render(Context())
for t in tags_list
]
Django的一大优点是解决方案和代码片段库。可悲的是,它们并不像人们所希望的那样组织有序、容易找到。尽管如此,谷歌还是找到了一些通用的解决方案
{% render tag.tag %}
以下是几个链接:
我没有对此进行测试,但这个堆栈溢出问题似乎指出了方向。请发布您的标记模型代码。您的意思是
tag.tag
的值是{%tagxxx%]
,您希望呈现它吗?这是不可能的。(至少默认情况下不可能…)您想在这个列表上迭代“插入”标记,所以在views.py中进行操作可能更好