Bagaimana cara menghapus objek dari hubungan Banyak-ke-Banyak tanpa menghapus objek sebenarnya?
Contoh:
Saya memiliki model Moods
dan Interest
.
Mood
memiliki bidang banyak-ke-banyak interests
(yaitu a models.ManyToManyField(Interest)
).
Saya membuat contoh yang Moods
disebut my_mood
. Dalam my_moods
bidang kepentingan yang saya miliki my_interest
, makna
>>> my_mood.interests.all()
[my_interest, ...]
Bagaimana cara menghapus my_interest
dari my_mood
tanpa menghapus salah satu contoh model? Dengan kata lain, bagaimana cara menghapus hubungan tanpa memengaruhi model terkait?
django
many-to-many
Nachshon Schwartz
sumber
sumber
AttributeError: 'RelatedManager' object has no attribute 'remove'
entry my_mood.interests.add(my_interest)
Jika Anda perlu menghapus semua referensi M2M tanpa menyentuh objek yang mendasarinya, akan lebih mudah untuk bekerja dari arah lain:
Meskipun ini tidak secara langsung menjawab pertanyaan OP, namun seringkali berguna dalam situasi ini.
sumber
interest.relatedname.clear()
Dalam kasus Anda, Anda cukup menghapus hubungan tersebut
Kemudian mungkin ketika Anda kembali membuat relasi baru di serializer Anda, Anda dapat melakukan sesuatu seperti ini
sumber