我正在尝试在for循环中包含一个应用了批处理过滤器的模板 但是我不知道如何/是否可以为过滤器返回的列表中的每个对象添加
我看到人们在线从循环中选择,就像这样:
{% for result in results %}
<tr>
<td>{{ result[0] }}</td>
<td>{{ result[1] }}</td>
<td>{{ result[2] }}</td>
</tr>
{% endfor %}
我只是不知道如何在列表中包括每个 我的代码如下:
{% for post in posts | batch(2, ' ') %}
<tr>
<td style="Width: 10%; height: auto">
{% include '_post.html' %}
</td>
</tr>
{% endfor %}
答案 0 :(得分:0)
Including部分非常好。
以您的示例为基础,为每个批次使用部分模板构建帖子表,您需要:
包含循环/过滤器的模板,其中包含部分代码:
<table>
<thead><tr>
<th>Title</th>
<th>Author</th>
<th>Title</th>
<th>Author</th>
</tr></thead>
<tbody>
{% for row in posts | batch(2) %}
{% include "row.html" %}
{% endfor %}
</tbody>
</table>
部分模板“ row.html”:
<tr>
<td>{{ row[0].title }}</td>
<td>{{ row[0].author }}</td>
<td>{{ row[1].title }}</td>
<td>{{ row[1].author }}</td>
</tr>
另一个选择是再次遍历批处理分区并使用更简单的部分模板:
模板:
<table>
<thead><tr>
<th>Title</th>
<th>Author</th>
<th>Title</th>
<th>Author</th>
</tr></thead>
<tbody>
{% for row in posts | batch(2) %}
<tr>
{% for col in row %}
{% include "col.html" %}
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
和“ col.html”:
<td>{{ col.title }}</td>
<td>{{ col.author }}</td>
如果它不起作用,请仔细检查变量名称,部分名称等。