Plone 当html作为变量返回时,如何处理html中的TAL表达式?

Plone 当html作为变量返回时,如何处理html中的TAL表达式?,plone,Plone,如何让在context/get_html中声明的tal表达式也被tal解释器处理?在我的浏览器视图中声明的get_html函数周围是否有一个实用程序?我正在运行Plone 5 示例: context/get\u html将返回: <div tal:content="context/Title"></div> 如果从context/get_html返回的html中包含如上图所示的tal表达式,则在调用以下内容时不会对其进行处理: <div id="content

如何让在context/get_html中声明的tal表达式也被tal解释器处理?在我的浏览器视图中声明的get_html函数周围是否有一个实用程序?我正在运行Plone 5

示例:

context/get\u html将返回:

<div tal:content="context/Title"></div>

如果从context/get_html返回的html中包含如上图所示的tal表达式,则在调用以下内容时不会对其进行处理:

<div id="content" tal:content="structure context/get_html"></div>

此输出中的结果:

<div id="content"><div tal:content="context/Title"></div></div>

当所需输出为:

<div id="content"><div>My Title</div></div>
我的标题

感谢您的帮助或花时间阅读此文章。

您想使用metal宏实现此目的

例如,get_html是一个页面模板,包含:

<metal:friendlyname define-macro="my-macro">
  <div id="content"><div tal:content="context/Title"></div></div>
</metal:friendlyname>
<metal:anothername use-macro="context/get_html/macros/my-macro" />

“使用_宏”是另一个包含以下内容的模板:

<metal:friendlyname define-macro="my-macro">
  <div id="content"><div tal:content="context/Title"></div></div>
</metal:friendlyname>
<metal:anothername use-macro="context/get_html/macros/my-macro" />

I如果您访问/your/context/use\u宏,则渲染的输出正好是:

<div id="content"><div>Your Title ;)</div></div>
您的标题;)
请查看以下内容以供参考:


好未来不是这样工作的。所有内容都需要在模板中才能进行处理

如果您使用的是变色龙(如果您在Plone 5上使用变色龙,如果您在Plone 4上使用一些插件,则可以使用变色龙),您可以在视图代码中执行此操作:

from chameleon import PageTemplate
template = PageTemplate("<div tal:content="context/Title"></div>")
template(context=context)
来自变色龙导入页面模板
模板=页面模板(“”)
模板(上下文=上下文)

问题在于get_html是一个可以更改的变量,不是一个静态模板。宏需要硬编码格式。您可能需要获取html以返回宏本身!看看这个:我已经测试过了,但仍然不起作用。“manager\u day\u period”使用一个宏,该宏是一个定义的.pt文件(硬编码html)。我不是在产品中定义.pt文件。get_html生成一个动态的.pt文件。然后,用户可以通过web编辑.pt模板。