重用相同的SQLAlchemy结果进行迭代时,它仅在第一次使用时有效。
请参阅下面的内容,我如何获得所有qual.workforce
但没有displayname
,busunit
或certcount's
的所有信息:
<ul class="empltype">
{% for qual in allquals %}
<li>{{qual.workforce}}</li>
{% endfor %}
</ul>
<ul class="names">
{% for qual in allquals %}
<li>{{qual.displayname}}</li>
{% endfor %}
</ul>
<ul class="busunit">
{% for qual in allquals %}
<li>{{qual.busunit}}</li>
{% endfor %}
</ul>
<ul class="certcount">
{% for qual in allquals %}
<li>{{qual.certcount}}</li>
{% endfor %}
我想在显示名称,busunit和certcount的3个循环之前使用MoveFirst,以便它们都能正常工作。
我不希望有4个相同变量的副本(allquals1、2、3),即使我知道这是可行的。我猜想jinja
渲染引擎只迭代对象一次,是否有办法告诉它每次在循环中使用时都对相同的结果集进行迭代?
答案 0 :(得分:3)
发生这种情况仅仅是因为结果是一个生成器,并且它的值只能被访问一次。您必须执行allquals = list(query_result)
才能对其进行多次迭代