-
从相关对象集中移除指定的模型对象:
>>> b = Blog.objects.get(id=1) >>> e = Entry.objects.get(id=234) >>> b.entry_set.remove(e) # Disassociates Entry e from Blog b.
与
add()
e.save()
来执行更新。但是,将remove()
与多对多关系一起使用会删除使用QuerySet.delete()
save()
方法;如果您希望在删除关系时执行自定义代码,请收听m2m_changed
对于多对多关系,
remove()
接受模型实例或字段值,通常是主键,作为*objs
参数。对于
ForeignKey
null=True
时存在。如果相关字段不能设置为None
(NULL
),则无法从关系中删除对象而不将其添加到另一个对象。在上面的示例中,从b.entry_set()
中删除e
相当于执行e.blog = None
,并且由于blog
ForeignKey
null=True
,因此这是无效的。对于
ForeignKey
bulk
参数来控制如何执行操作。如果True
(默认),则使用QuerySet.update()
。如果bulk=False
,则改为调用每个单独模型实例的save()
方法。这会触发pre_save
post_save
对于多对多关系,
bulk
关键字参数不存在。
本文介绍django.db.models.fields.related.RelatedManager.remove
的用法。
声明
remove(*objs, bulk=True)
相关用法
- Python Django RelatedManager.set用法及代码示例
- 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.remove。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。