-
從相關對象集中移除指定的模型對象:
>>> 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
