金字塔/变色龙 - 将数据传递到变色龙模板

时间:2017-06-07 23:51:32

标签: python pyramid chameleon

我在名为table_search.pt的金字塔应用中有一个变色龙模板:

<form class="table-search" tal:repeat="search_item search_fields">
      <div class="form-group">
      <label data-field="${search_item.field}">${search_item.label}</label>
      <input type="${search_item.field_type}" class="form-control">
      </div>
</form>

我希望将名为search_fields的词典列表传递到此模板中,但我无法弄清楚如何。我正在将table_search.py加载到另一个名为table.pt的模板中:

<div metal:use-macro="load: pagelayout.pt">

<div metal:fill-slot="content">
     <div class="content">

     <div metal:define-slot="search_fields">
          <div metal:use-macro="load: table_search.pt"></div>
     </div>

 ...

有没有办法将搜索模板加载到另一个模板中,该模板包含一个包含search_fields词典列表的特定数据上下文?

通过可调用的金字塔视图传入search_fields可能会很棘手,那还有另外一种方法吗?

1 个答案:

答案 0 :(得分:0)

您可以查看变色龙中的tal:repeat函数:

<div tal:repeat="fielddict fieldslist">
<label>${fielddict['fieldname']}</label>
<input type="${fielddict['fieldtype']}" class="form-control">
</div>

类似的东西,但我不确定是否tal:repeat可以直接迭代字典。列表运作良好。