Django 如何过滤查询集以插入常见结果

Django How do I filter querysets to insersect common results

我想过滤一个依赖于另一个查询集的查询集

我的models.py

class Escola(models.Model):
    id = models.AutoField(db_column='ID', primary_key=True)
    nome = models.CharField(db_column='Nome', max_length=255, blank=True, null=True)

class Inscrio(models.Model):
    id = models.AutoField(db_column='ID', primary_key=True)
    escolaid = models.ForeignKey(Escola, models.DO_NOTHING, db_column='EscolaID', blank=True, null=True)

这是我的views.py

def view_forms(request):
   return render(request, 
                 "main/view_forms.html", 
                 {"escolas": Escola.objects.all,
                 })

我有一个 .html 模板,其中我 运行 一个 for 循环来编写 Escola 的所有对象,这些对象与模型 Inscrio 连接(通过 'escolaid' 外键).

我想要一个查询集来查找与 Escola 的 'id'

具有相同 'escolaid' 的 Inscrio 对象

例如,假设 for 循环为模型 Escola 返回了 'id' = 1,现在我想获取(在 for 循环中)所有具有 'escolaid' = 1 的 Inscrio 对象,并且我想要这个直到 Escola 循环没有更多的值

我该怎么做?

提前致谢

在模板中很简单,如果您在 Inscrio 模型中为 escolaid 分配了 related_name(exp: inscrios),则应将 escola.inscrio_set 替换为 escola.inscrios。浏览文档:related-objects-reference

{% for escola in escolas %}
  {# handle escola #}

  {% for inscrio in escola.inscrio_set %}
    {# handle inscrio #}
  {% endfor %}

{% endfor %}