我有两个 for 循环。一个包含表中所有数据的数组,另一个包含一个数组,其中外键是第一个数组中的表。我想看看有多少匹配项并检查它,但循环不起作用。{% if comunidades %} {% for comunidad in comunidades %} {% if likes %} {{ likes[0].comunidad.id }} {{ likes[1].comunidad.id }} --{{ comunidad.id }}-- {% if comunidad.id in likes|keys %} OK {% endif %} {% endif %} {% endfor %}{% endif %}这打印: 1 3 --3-- 1 3 --2-- 1 3 --1-- OK谢谢
1 回答
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
因为 likes 数组的 key 是一个对象。您应该只使用对象的 id 来使用地图过滤器,例如:
{% for comunidad in comunidades %}
{% if likes %}
{{ likes[0].comunidad.id }}
{{ likes[1].comunidad.id }}
--{{ comunidad.id }}--
{% if comunidad.id in likes|map(p => p.comunidad.id) %}
OK
{% endif %}
{% endif %}
{% endfor %}
输出将是:
1
3
--3--
OK
1
3
--2--
1
3
--1--
OK
所以只有第一个和最后一个元素会匹配
- 1 回答
- 0 关注
- 127 浏览
添加回答
举报
0/150
提交
取消