Jinja2 - 检查一个查询集元素是否在另一个中

时间:2018-03-21 16:51:31

标签: python html django jinja2

所以我有两个查询集,我很难找到一种方法来检查查询集1是否包含查询集2中的所有元素。查询集2比查询集1有更多的元素但是但我只想检查查询集1是否包含第二个中的所有元素。

任何人都知道解决这个问题吗?

到目前为止,我已经在我的jinja2模板中使用了这个

  • Queryset 1 = group.dependancies
  • Queryset 2 = SelectedGroups

但是我真的想要显示是否满足了依赖性,而不是简单地列出缺失的依赖性。

{% for dp in group.dependancies.all() %}
  {% if dp not in SelectedGroups.all() %}

    <p>Missing dependancy {{ dp }}</p>

  {% endif %}
{% endfor %}

1 个答案:

答案 0 :(得分:1)

不要在Jinja2模板上执行此操作,但无论您在哪里生成这些查询集:

result =  all(item in list(group.dependancies.all()) for item in list(SelectedGroups.all()))
if result:
    msg = "<p>All dependencies satsfied.</p>"
else:
    msg = "<p>Dependencies missing.</p>

然后将msg返回到模板并使用{{msg}}呈现它。