Django - применение уникальных элементов ManyToManyField

Я пытаюсь сделать что-то простое, например:

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 () происходит тихо? Должен ли я просто проверить, есть ли пользователь уже перед добавлением?

Спасибо!

24
задан JPC 2 February 2011 в 05:00
поделиться