我有两个模型组和用户。
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(?))
但我不知道如何正确计算。
答案 0 :(得分:0)
我相信这应该有效:
def get_queryset(self):
return super(UserListView, self).get_queryset().annotate(num_groups=Count('groupuser'))