使用Count来自django中第三个表的行

时间:2017-06-20 16:23:29

标签: django

我有这个型号:

scala> var s = "123456"
s: String = 123456

scala> s.map(_.toInt)
res0: scala.collection.immutable.IndexedSeq[Int] = Vector(49, 50, 51, 52, 53, 54)

scala> s.map(_.toInt).sum
res1: Int = 309

现在我想计算一个组中的成员数,但每个成员都是子组的一部分。

class MemberGroup(models.Model):
    name=models.CharField(max_length=15)

class Subgroup(models.Model):
    name=models.CharField(max_length=15)
    member_group=models.ForeignKey(MemberGroup,related_name='membergroup_subgroup')

 class Members(models.Model):
     user=models.ForeignKey(User)
     subgroup=models.ForeignKey(Subgroup)

给出了每组中的子组数。但我想要成员而我的尝试到目前为止失败了。

1 个答案:

答案 0 :(得分:0)

如果您向MemberGroup中的models.py添加ManyToMany Field

class MemberGroup(models.Model):
    name=models.CharField(max_length=15)
    members=models.ManyToManyField(Members)

然后你可以得到这样的计数:

 MemberGroup.objects.all().annotate(c=Count('membergroup_members'))

或针对个别群体:

g = MemberGroup.objects.filter(...)
g[0].members.count()