Django removing object from ManyToMany relationship

前端 未结 3 650
遇见更好的自我
遇见更好的自我 2020-12-12 16:47

How would I delete an object from a Many-to-Many relationship without removing the actual object?

Example:

I have the models Moods

相关标签:
3条回答
  • 2020-12-12 17:14
    my_mood.interests.remove(my_interest)
    

    Django's Relations Docs

    Note: you might have to get an instance of my_mood and my_interest using Django's QuerySet API before you can execute this code.

    0 讨论(0)
  • 2020-12-12 17:29

    If you need to remove all M2M references without touching the underlying objects, it's easier to work from the other direction:

    interest.mood_set.clear()
    

    While this does not directly address the OP's question, it's often useful in this situation.

    0 讨论(0)
  • 2020-12-12 17:36

    In your case you can simply clear the relationship

    my_mood.interests.clear()
    

    Then perhaps when you are again creating new relation in your serializer you can do something like this

    interests = Interests.objects.get_or_create(name='Something')
    my_mood_obj.tags.add(tag[0])
    my_mood_obj.save()
    
    0 讨论(0)
提交回复
热议问题