Python django,如何在Q中使用计数
我有以下型号:Python django,如何在Q中使用计数,python,django,django-admin,django-queryset,Python,Django,Django Admin,Django Queryset,我有以下型号: class Group(models.Model): group_name = models.CharField(max_length=16) class Member(models.Model): group = models.ForeignKey('Group') member_name = models.CharField(max_length=16) gender = models.BooleanField() #False is "
class Group(models.Model):
group_name = models.CharField(max_length=16)
class Member(models.Model):
group = models.ForeignKey('Group')
member_name = models.CharField(max_length=16)
gender = models.BooleanField() #False is "female", True is "male"
我怎样才能找到一个组
没有成员
,或者男性成员
的数量为零
我尝试了以下方法,但无效:
Group.objects.filter( Q(member__isnull=True) |
Q(member__isnull=False) &
Q( Count(member__gender=True)=0 ) )
解决方案
Group.objects.filter(Q(member__isnull=True) | ~Q(member__gender=True))
当您试图获取可能返回多个结果的内容时,应该使用筛选器而不是get
如果要计算查询集,可以使用
Group.objects.filter(Q(member__gender=False )).count()
是的,过滤器是对的,但你的解决方案不起作用。我希望找到没有成员或其所有成员都是女性的“组”。(1)Group.objects.filter(Q(member\uu isnull=True)| ~Q(member\uu gender=True)).distinct(),您应该添加distinct。(2) 您的解决方案有一半是正确的,因为它不够健壮。如果我想要“男性会员为2”怎么办。(3) 但无论如何,它都是有效的,所以请记住你的答案是有用的。