Wie würde ich ein Objekt aus einer Viele-zu-Viele-Beziehung löschen, ohne das eigentliche Objekt zu entfernen?
Beispiel:
Ich habe die Modelle Moods
und Interest
.
Mood
hat ein Viele-zu-Viele-Feld interests
(das ist a models.ManyToManyField(Interest)
).
Ich erstelle eine Instanz von Moods
aufgerufen my_mood
. In my_moods
'Interessenbereich habe ich my_interest
Bedeutung
>>> my_mood.interests.all()
[my_interest, ...]
Wie entferne ich my_interest
aus , my_mood
ohne entweder Modellinstanz löschen? Mit anderen Worten, wie entferne ich die Beziehung, ohne die zugehörigen Modelle zu beeinflussen?
django
many-to-many
Nachshon Schwartz
quelle
quelle
AttributeError: 'RelatedManager' object has no attribute 'remove'
entry my_mood.interests.add(my_interest)
Wenn Sie alle M2M-Referenzen entfernen müssen, ohne die zugrunde liegenden Objekte zu berühren, ist es einfacher, aus der anderen Richtung zu arbeiten:
Dies geht zwar nicht direkt auf die Frage des OP ein, ist jedoch in dieser Situation häufig nützlich.
quelle
interest.relatedname.clear()
In Ihrem Fall können Sie einfach die Beziehung löschen
Wenn Sie dann in Ihrem Serializer erneut eine neue Beziehung erstellen, können Sie möglicherweise Folgendes tun
quelle