-
从相关对象集中移除指定的模型对象:
>>> 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参数。对于
对象,此方法仅在ForeignKeynull=True时存在。如果相关字段不能设置为None(NULL),则无法从关系中删除对象而不将其添加到另一个对象。在上面的示例中,从b.entry_set()中删除e相当于执行e.blog = None,并且由于blog没有ForeignKeynull=True,因此这是无效的。对于
对象,此方法接受ForeignKeybulk参数来控制如何执行操作。如果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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
