如何解决Django从ManyToMany关系中删除对象
| 如何在不删除实际对象的情况下从多对多关系中删除对象? 例: 我有型号Moods
和Interest
。
Mood
具有多对多字段field3ѭ(即a4ѭ)。
我创建一个名为my_mood
的ѭ0实例。在my_moods
的兴趣领域中,我有my_interest
,意思是
>>> my_mood.interests.all()
[my_interest,...]
如何从my_mood
中删除remove8ѭ,而不删除任何模型实例?换句话说,如何删除关系而不影响相关模型?
解决方法
my_mood.interests.remove(my_interest)
Django的关系文档
注意:在执行此代码之前,您可能必须使用Django的QuerySet API获得my_mood
和my_interest
的实例。
, 如果您需要在不接触基础对象的情况下删除所有M2M引用,那么从另一个方向进行操作会更容易:
interest.mood_set.clear()
尽管这不能直接解决OP的问题,但在这种情况下通常很有用。
, 就您而言,您只需清除关系
my_mood.interests.clear()
然后,当您再次在序列化器中创建新关系时,可以执行以下操作
interests = Interests.objects.get_or_create(name=\'Something\')
my_mood_obj.tags.add(tag[0])
my_mood_obj.save()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。