Django如何从带有额外字段的ManyToManyField中删除?
Posted
技术标签:
【中文标题】Django如何从带有额外字段的ManyToManyField中删除?【英文标题】:Django how to delete from ManyToManyField with extra field? 【发布时间】:2013-06-05 16:02:04 【问题描述】:在我的 django 应用程序中,我设置了与 django 网站上的这些模型类似的模型 - Extra fields on many-to-many relationships。在页面的下方,我阅读了
remove() 方法因类似原因被禁用。但是,clear() 方法可用于删除实例的所有多对多关系:
如果删除方法被禁用,那么如何从多对多字段中删除对象?它说我可以使用 clear 方法删除所有内容,但我只想从 manytomany 字段中删除一个特定元素。
【问题讨论】:
【参考方案1】:您可以删除中间模型上的实例。
来自 djangoproject 中提供的示例:
m_qs = Membership.objects.filter(person=person, group=group) #or some other logic to filter
try:
m = m_qs.get() #assuming queryset returns only 1 element
m.delete()
except:
pass #handle more gracefully
【讨论】:
好的,谢谢。在 ipython 中,我也可以看到 delete() 方法。删除和删除有区别吗?我应该使用其中一个吗? 对不起..我的错误。发帖前应该审核过的。是delete()
不是remove()
以上是关于Django如何从带有额外字段的ManyToManyField中删除?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 DRF + django-rest-auth 中使用自定义用户模型保存注册时的额外字段
如何在 Django 中通过 group by 获得额外的列?