Django从ManyToMany关系中删除对象
我怎么会删除一个对象从多对多的关系,而不删除实际的对象?
例:
我有模特的Moods
和Interest
。
“情绪”有很多领域的interests
(这是一个models.ManyToManyField(Interest)
。许多许多领域models.ManyToManyField(Interest)
)。
我创build了一个名为my_mood
的Moods
实例。 在my_moods的兴趣领域,我有我的兴趣,意思
>>> my_mood.interests.all() [my_interest, ...]
如何在不删除模型实例的情况下从my_mood中删除my_interest? 换句话说,如何在不影响相关模型的情况下移除关系?
my_mood.interests.remove(my_interest)
Django的关系文件
注意:你可能必须使用Django的QuerySet API获取my_mood和my_instance的实例,然后才能执行这段代码。
如果您需要删除所有M2M引用而不触及底层对象,则从另一个方向工作会更容易:
interest.mood_set.clear()