Calling save() on a model doesn't do anything to it's m2m fields though. At least, I didn't think so.

Assigning the relation set should be enough. See "Relation sets can be assigned. Assignment clears any existing set members"

https://docs.djangoproject.com/en/dev/topics/db/examples/many_to_many/