在Django

时间:2015-06-02 21:54:38

标签: python django

我有两个模型组和用户。

class User(models.Model):
    name = models.CharField(max_length=50)

class Group(models.Model):
    users = models.ManyToManyField(User)

用户可以在多个组中,一个组可以有多个用户,因此我在Group中创建了ManyToManyField。

我制作了一个中间模型来存储用户添加到组中的日期

class User(models.Model):
    name = models.CharField(max_length=50)

class Group(models.Model):
    users = models.ManyToManyField(User, through='GroupUser')

class GroupUser(models.Model):
    user = models.ForeignKey(User)
    group = models.ForeignKey(Group)

它可以正常工作。

但我有一个UserListView,我想在其中注释每个用户所属的组数。

我在ListView中重写了get_queryset

def get_queryset(self):
    return super(UserListView, self).get_queryset().annotate(num_groups=Count(?))

但我不知道如何正确计算。

1 个答案:

答案 0 :(得分:0)

我相信这应该有效:

def get_queryset(self):
    return super(UserListView, self).get_queryset().annotate(num_groups=Count('groupuser'))