AttributeError:' RelatedManager'对象没有属性'删除'

时间:2017-09-12 13:46:41

标签: django django-models

我的代码中的某处说

publisher.publisherperson_set.remove(email__in=pp_remove_set)

执行此操作后,我得到了

  

AttributeError:' RelatedManager'对象没有属性'删除'

确实:我看了dir(publisher.publisherperson_set)并且它有很多操作(包括add),但不是remove

在哪种情况下这可能?

2 个答案:

答案 0 :(得分:5)

不能是null

documentation for RelatedManager.remove()

  

对于ForeignKey个对象,此方法仅在null=True时存在。   如果相关字段无法设置为NoneNULL),那么   如果没有添加到另一个对象,则无法从关系中删除该对象。

很明显,一旦你想到它。
我真正打算这样做:

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操作filterallorder_byexcludeannotate

可以使用

。尽管目前我不确定从all()stuff_set返回的查询集列表有什么细微差别: