@tetsu
代码中的说明,应该能看得懂吧:

~odoo.fields.One2many and ~odoo.fields.Many2many use a special "commands" format to manipulate the set of records stored in/associated with the field.

This format is a list of triplets executed sequentially, where each triplet is a command to execute on the set of records. Not all commands apply in all situations. Possible commands are:

(0, _, values)
adds a new record created from the provided value dict.

(1, id, values)
updates an existing record of id id with the values in values. Can not be used in :meth:~.create.

(2, id, _)
removes the record of id id from the set, then deletes it (from the database). Can not be used in :meth:~.create.

(3, id, _)
removes the record of id id from the set, but does not delete it. Can not be used on ~odoo.fields.One2many. Can not be used in :meth:~.create.

(4, id, _)
adds an existing record of id id to the set. Can not be used on :class:~odoo.fields.One2many.

(5, _, _)
removes all records from the set, equivalent to using the command 3 on every record explicitly. Can not be used on :class:~odoo.fields.One2many. Can not be used in :meth:~.create.

(6, _, ids)
replaces all existing records in the set by the ids list, equivalent to using the command 5 followed by a command 4 for each id in ids.

Note: Values marked as _ in the list above are ignored and can be anything, generally 0 or False.