我现在正在使用django一段时间,最近碰到了这个:
user.groups.clear()
通常我要做的就是:
user.groups.all().delete()
有什么区别?
答案 0 :(得分:12)
user.groups.all().delete()
删除相关的群组对象,而user.groups.clear()
只会解除关系:
从相关对象集中删除所有对象: 请注意,这不会删除相关对象 - 它只是将它们取消关联。
请注意,删除相关对象可能会产生副作用,即属于同一组的其他用户也可能会被删除(通过级联),具体取决于on_delete
指定的ForeignKey规则。
答案 1 :(得分:4)
user.groups.clear()
这会取消群组与用户的关联,但不会影响群组本身。
user.groups.all().delete()
这会删除实际的组。您可能不希望这样做,因为可能还有其他用户属于这些组。