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

时间:2014-09-30 13:48:48

标签: 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至少有一个B,其中flag = True链接。 是否可以使用过滤器直接执行此操作?而不是有一个循环然后:

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

1 个答案:

答案 0 :(得分:1)

指定b__flag=...会为您提供所需内容。

A.objects.filter(b__flat=True)

以上可能会产生重复的A个对象。防止,使用QuerySet.distinct

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