【问题标题】:Django how to delete from ManyToManyField with extra field?Django如何从带有额外字段的ManyToManyField中删除?
【发布时间】:2013-06-05 16:02:04
【问题描述】:

在我的 django 应用程序中,我设置了与 django 网站上的这些模型类似的模型 - Extra fields on many-to-many relationships。在页面的下方,我阅读了

remove() 方法因类似原因被禁用。但是,clear() 方法可用于删除实例的所有多对多关系:

如果删除方法被禁用,那么如何从多对多字段中删除对象?它说我可以使用 clear 方法删除所有内容,但我只想从 manytomany 字段中删除一个特定元素。

【问题讨论】:

    标签: django many-to-many django-orm


    【解决方案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()
    猜你喜欢
    • 2016-10-18
    • 2018-06-25
    • 2018-09-11
    • 2011-05-06
    • 2014-01-11
    • 2020-10-22
    • 2014-02-16
    • 2011-01-14
    • 2015-01-20
    相关资源
    最近更新 更多