请考虑以下Django型号:
ParentModel(models.Model):
...
ChildModel(models.Model):
parent = models.ForeignKey(ParentModel, related_name='children')
假设数据库中所有子节点的某个子集可用作查询集(称之为第1集)。
现在,我想获得所有父母的子集(称之为第2集),该子集表示第1集中的孩子与之相关。
如果没有在python级别循环第一组(并且可能导致线性数量的DB命中),即只有一次或两次数据库命中,你怎么做?
谢谢!
答案 0 :(得分:4)
假设您有一个名为children
的查询集:
ParentModel.objects.filter(children__in=children)