I'm trying to do something simple like this:
members = models.ManyToManyField(User, blank=True, null=True, unique=True)
but unique isn't allowed. When looking at the table created, it makes foreign keys so uniqueness is implied I imagine.
I want to be able to associate members with this model representing a group. The group can have no members but I don't want the same member to be able to join the group twice.
My thought would be that an exception would be thrown if I try and do this but it seems that an exception is not thrown.
def join(request,id):
user = request.user
mygroup = Group.objects.get(id=id)
mygroup.members.add(user)
mygroup.num_members += 1
mygroup.save()
num_members is incremented, because no exception is thrown. Duplicate users don't appear in the admin utility. Does add()
fail silently? Should I just simply check if the user is contained already before adding?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…