在我的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
答案 0 :(得分:1)
指定b__flag=...
会为您提供所需内容。
A.objects.filter(b__flat=True)
以上可能会产生重复的A
个对象。防止,使用QuerySet.distinct
:
A.objects.filter(b__flat=True).distinct()