如何从子集实例集中获取所有相关/父实例,而不通过后一集循环

时间:2009-10-20 08:56:09

标签: python django django-views foreign-key-relationship

请考虑以下Django型号:


ParentModel(models.Model):
    ...

ChildModel(models.Model):
    parent = models.ForeignKey(ParentModel, related_name='children')

假设数据库中所有子节点的某个子集可用作查询集(称之为第1集)。
现在,我想获得所有父母的子集(称之为第2集),该子集表示第1集中的孩子与之相关。

如果没有在python级别循环第一组(并且可能导致线性数量的DB命中),即只有一次或两次数据库命中,你怎么做?

谢谢!

1 个答案:

答案 0 :(得分:4)

假设您有一个名为children的查询集:

ParentModel.objects.filter(children__in=children)