Я пытаюсь сделать что-то простое:
members = models.ManyToManyField(User,blank=True,null=True,unique=True)
но уникальность не допускается. Когда вы смотрите на созданную таблицу, она делает внешние ключи, поэтому я предполагаю уникальность.
Я хочу иметь возможность связывать участников с этой моделью, представляющей группу. У группы нет членов, но я не хочу, чтобы один и тот же член мог присоединиться к группе дважды.
Моя мысль заключалась бы в том, что исключение будет выбрано, если я попытаюсь сделать это, но кажется, что исключение не выбрано.
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 увеличивается, поскольку исключение не генерируется. Дублированные пользователи не отображаются в утилите администратора. Может ли add() терпеть неудачу? Должен ли я просто проверить, содержится ли пользователь уже перед добавлением?
Спасибо!