首页 > 解决方案 > 如何检查 Django 模板中是否存在多对多关系?

问题描述

在此代码示例中,“teaches_for”是将 Performer 模型与 School 模型相关联的多对多字段的名称。只有在 Performer 和 Teacher 模型之间存在至少一种关系时,我才想包含这个特定的块。

这是我的非工作代码:

{% if performer.teaches_for.exists %}
<h3>{{performer.first_name}} teaches at these schools...</h3>

<ul>
    {% for school in performer.teaches_for.all %}
    <li><a href="/schools/{{school.id}}">{{ school.name }}</a></li>
    {%  endfor %}
</ul>

{% endif %}

错误的线是{% if performer.teaches_for.exists %}. 如果至少存在一种关系,我可以用什么来代替它,如果存在至少一种关系,那么它将是 False,否则?

我的 Performer 模型中的相关字段如下所示:

    teaches_for = models.ManyToManyField(
        School,
        verbose_name="Teaches at this school",
        blank=True,
        related_name="teachers",
    )

标签: djangodjango-models

解决方案


尝试{% if performer.teaches_for.all.exists %}


推荐阅读