Как мне удалить объект из отношения «многие ко многим», не удаляя сам объект?
Пример:
У меня есть модели Moods
и Interest
.
Mood
имеет поле "многие ко многим" interests
(т.е. a models.ManyToManyField(Interest)
).
Я создаю экземпляр Moods
call my_mood
. В my_moods
поле интересов у меня есть my_interest
, то есть
>>> my_mood.interests.all()
[my_interest, ...]
Как удалить my_interest
из my_mood
без удаления либо экземпляра модели? Другими словами, как мне удалить взаимосвязь, не затрагивая связанные модели?
django
many-to-many
Нахшон Шварц
источник
источник
AttributeError: 'RelatedManager' object has no attribute 'remove'
entry my_mood.interests.add(my_interest)
Если вам нужно удалить все ссылки M2M, не касаясь нижележащих объектов, проще работать в другом направлении:
Хотя это напрямую не касается вопроса OP, это часто бывает полезно в этой ситуации.
источник
interest.relatedname.clear()
В вашем случае вы можете просто очистить отношения
Тогда, возможно, когда вы снова создадите новое отношение в своем сериализаторе, вы сможете сделать что-то вроде этого
источник