【发布时间】:2011-06-19 17:56:16
【问题描述】:
我正在尝试做这样简单的事情:
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() 会默默失败吗?我是否应该在添加之前简单地检查用户是否已经包含在内?
【问题讨论】:
-
为什么不做一个从组到用户的外键?这样,一个用户可以在多个组中,但每个组只能出现一次 - 这就是您想要的。
-
从组到用户的
ForeignKey表示组中只有一个用户。ForeignKey是多对一的。
标签: python django django-models