Django使用foreignKey检索查询中的一个属性

Django使用foreignKey检索查询中的一个属性,django,filter,models,Django,Filter,Models,在django代码中,我有两个对象: class A(models.Model): ... class B(models.Model) flag = models.BooleanField(default=False) type = models.ForeignKey(A) ... 我想做一些类似的事情: A.objects.filter(…) 在我的过滤器中,我只希望A至少有1个B且标志为True的链接。 是否可以直接使用过滤器执行此操作?而不是有一个循环,然后: a.b_

在django代码中,我有两个对象:

class A(models.Model):
  ...

class B(models.Model)
  flag = models.BooleanField(default=False)
  type = models.ForeignKey(A)
  ...
我想做一些类似的事情:

A.objects.filter(…)

在我的过滤器中,我只希望A至少有1个B且标志为True的链接。 是否可以直接使用过滤器执行此操作?而不是有一个循环,然后:

a.b_set.filter(flag__exact=1).count() > 0

指定
b_u标志=…
将为您提供所需

A.objects.filter(b__flat=True)
上述方法可能会产生重复的
A
对象。要防止这种情况,请使用:

A.objects.filter(b__flat=True).distinct()