id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 17528,Document that add() and remove() with a many-to-many relationship do not call Model.save(),mmoya@…,nobody,"I think there are an inconsistency in the model's save method. Suppose we are editing an existing object from the admin. If I want to prevent saving objects (suppose I want to moderate the object), when I override the Model.save() or ModelAdmin.save_model() the m2m relations are also saved, but what I really want to do is avoid saving any changes. There is a simple example: {{{ class Topping(models.Model): # ... class Pizza(models.Model): # ... toppings = models.ManyToManyField(Topping) def save(self, *args, **kwargs): return }}} This happens because the related m2m is commited outside the save method. If I execute this on shell: {{{ >>> p = Pizza.objects.get(pk=5) >>> p.foo_field 'Foo text' >>> t = Pizza.objects.get(pk=1) >>> p.foo_field = 'Bar text' >>> p.toppings.add(t) }}} Then, the p object have a new topping object added, but i never executed the p.save(). ",Cleanup/optimization,closed,Documentation,1.3,Normal,fixed,"m2m, related manager, save",asendecka@…,Accepted,1,0,0,0,0,0