The error is telling you exactly what the problem is. You can't do the
automatic assignment to many-to-many relations that use an intermediate
table. The reason being that the whole point of an intermediate table is
that it has *extra* information specified on it (otherwise you could
just use a normal ManyToManyField). So you need to create objects with
that extra information and save then explicitly.
Short version is you can't use save_m2m() in that case for precisely
this reason. You'll need to extract out the necessary data from the
form, and save it on the intermediate model.
Regards,
Malcolm