首先,我不会使用num_members
。相反,您可以使用来检查有多少个成员mygroup.members.count()
。其次,多次添加成员并不会一次添加,因此您可以。
一ManyToManyField
对Group
用于member
指向User
与一个单独的表(类似于实施group_group_users
具有外键)Group
和User
。一个用户可以有多个组,一个组可以有多个用户,但是group_group_users
对于相同的关系,不能有两行(即,唯一的外键一起)。
用法:
>>> group = Group.objects.get(pk=1)
>>> user = User.objects.get(pk=1)
>>> group.members.add(user)
>>> # Worked fine as expected. Let's check the results.
>>> group.members.all()
[<User: foousername>]
>>> group.members.add(user)
>>> # Worked fine again. Let's check for duplicates.
>>> group.members.all()
[<User: foousername>]
>>> # Worked fine.