-
替换相关对象集:
>>> new_list = [obj1, obj2, obj3] >>> e.related_set.set(new_list)
此方法接受
clear
参数来控制如何执行操作。如果是False
(默认值),则使用remove()
删除新集合中缺少的元素,并且只添加新元素。如果clear=True
,则调用clear()
方法并立即添加整个集合。对于
ForeignKey
bulk
参数传递给add()
remove()
对于多对多关系,
bulk
关键字参数不存在。请注意,由于
set()
是复合操作,因此它受制于竞争条件。例如,可以在调用clear()
和调用add()
之间将新对象添加到数据库中。对于多对多关系
set()
接受模型实例或字段值的列表,通常是主键,作为objs
参数。如果需要,使用
through_defaults
参数为新的中间模型实例指定值。您可以将可调用对象用作through_defaults
字典中的值,并且它们将在创建任何中间实例之前被评估一次。
本文介绍 django.db.models.fields.related.RelatedManager.set
的用法。
声明
set(objs, bulk=True, clear=False, through_defaults=None)
注意
请注意,add()
、create()
、remove()
、clear()
和 set()
都立即对所有类型的相关字段应用数据库更改。换句话说,不需要在关系的任何一端调用save()
。
如果您使用
,则 prefetch_related()
add()
、 remove()
、 clear()
和 set()
方法会清除预取缓存。
相关用法
- Python Django RelatedManager.remove用法及代码示例
- Python Django RelatedManager.clear用法及代码示例
- Python Django RelatedManager.create用法及代码示例
- Python Django RelatedManager.add用法及代码示例
- Python Django Response.json用法及代码示例
- Python Django Repeat用法及代码示例
- Python Django RequestContext用法及代码示例
- Python Django Reverse用法及代码示例
- Python Django Redirect用法及代码示例
- Python Django Response.resolver_match用法及代码示例
- Python Django Response.context用法及代码示例
- Python Django RedirectView用法及代码示例
- Python Django RequireDebugFalse用法及代码示例
- Python Django Replace用法及代码示例
- Python Django RandomUUID用法及代码示例
- Python RLock acquire()用法及代码示例
- Python Random.Choices()用法及代码示例
- Python Django REQUIRED_FIELDS用法及代码示例
- Python Django Radians用法及代码示例
- Python Django RawSQL用法及代码示例
- Python Django RadioSelect用法及代码示例
- Python Django Right用法及代码示例
- Python Django RangeOperators用法及代码示例
- Python RLock release()用法及代码示例
- Python PIL RankFilter()用法及代码示例
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.db.models.fields.related.RelatedManager.set。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。