Django ManyToMany字段的set操作是否清除现有关系?

问题描述

以下两种情况在Django ORM操作中是否有区别?会不会有任何性能提升?

obj.manytomanyfield.clear()
obj.manytomanyfield.add(1,2,3,4,5)

obj.manytomanyfield.set([1,5])

解决方法

在文档中,set()-Django doc

此方法接受clear参数来控制如何执行 操作。如果为False(默认设置),则新元素中缺少的元素 使用remove()删除集合,仅添加新集合。如果 clear=True,则调用clear()方法,整个集合为 一次添加。

这是什么意思

obj.manytomanyfield.clear()
obj.manytomanyfield.add(1,2,3,4,5)

等于 等于

obj.manytomanyfield.set([1,5],clear=True)