﻿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
