Como eu excluiria um objeto de um relacionamento Muitos para Muitos sem remover o objeto real?
Exemplo:
Eu tenho os modelos Moods
e Interest
.
Mood
tem um campo muitos para muitos interests
(que é a models.ManyToManyField(Interest)
).
Eu crio uma instância de Moods
chamada my_mood
. No my_moods
campo de interesses de eu tenho my_interest
, o que significa
>>> my_mood.interests.all()
[my_interest, ...]
Como faço para remover my_interest
a partir my_mood
sem excluir qualquer instância de modelo? Em outras palavras, como removo o relacionamento sem afetar os modelos relacionados?
django
many-to-many
Nachshon Schwartz
fonte
fonte
AttributeError: 'RelatedManager' object has no attribute 'remove'
entry my_mood.interests.add(my_interest)
Se você precisar remover todas as referências M2M sem tocar nos objetos subjacentes, é mais fácil trabalhar na outra direção:
Embora isso não trate diretamente da pergunta do OP, costuma ser útil nessa situação.
fonte
interest.relatedname.clear()
No seu caso, você pode simplesmente limpar o relacionamento
Então, talvez quando você estiver criando uma nova relação em seu serializador, você pode fazer algo assim
fonte