Comment supprimer un objet d'une relation plusieurs-à-plusieurs sans supprimer l'objet réel?
Exemple:
J'ai les modèles Moods
et Interest
.
Mood
a un champ plusieurs-à-plusieurs interests
(qui est a models.ManyToManyField(Interest)
).
Je crée une instance de Moods
called my_mood
. Dans my_moods
le domaine des intérêts que j'ai my_interest
, c'est-à-dire
>>> my_mood.interests.all()
[my_interest, ...]
Comment supprimer my_interest
de my_mood
sans supprimer l'une ou l'autre des instances de modèle? En d'autres termes, comment supprimer la relation sans affecter les modèles associés?
django
many-to-many
Nachshon Schwartz
la source
la source
AttributeError: 'RelatedManager' object has no attribute 'remove'
entry my_mood.interests.add(my_interest)
Si vous devez supprimer toutes les références M2M sans toucher les objets sous-jacents, il est plus facile de travailler dans l'autre sens:
Bien que cela ne répond pas directement à la question du PO, c'est souvent utile dans cette situation.
la source
interest.relatedname.clear()
Dans votre cas, vous pouvez simplement effacer la relation
Ensuite, peut-être que lorsque vous créez à nouveau une nouvelle relation dans votre sérialiseur, vous pouvez faire quelque chose comme ça
la source