我的代码中的某处说
publisher.publisherperson_set.remove(email__in=pp_remove_set)
执行此操作后,我得到了
AttributeError:' RelatedManager'对象没有属性'删除'
确实:我看了dir(publisher.publisherperson_set)
并且它有很多操作(包括add
),但不是remove
。
在哪种情况下这可能?
答案 0 :(得分:5)
null
documentation for RelatedManager.remove()
说
对于
ForeignKey
个对象,此方法仅在null=True
时存在。 如果相关字段无法设置为None
(NULL
),那么 如果没有添加到另一个对象,则无法从关系中删除该对象。
很明显,一旦你想到它。
我真正打算这样做:
publisher.publisherperson_set.filter(email__in=pp_remove_set).delete()
答案 1 :(得分:1)
因为我是从相关搜索中找到的,所以只发布此内容
AttributeError: 'RelatedManager' object has no attribute 'delete'
我要找的是:
thing.stuff_set.all().delete()
注意:仍在学习django,但我假设使用任何queryset操作filter
,all
,order_by
,exclude
,annotate
等>
。尽管目前我不确定从all()
和stuff_set
返回的查询集列表有什么细微差别: