Вот пример из стокового модуля :
invoice_line_id = invoice_line_obj.create(cursor, user, {
'name': name,
'origin': origin,
'invoice_id': invoice_id,
'uos_id': uos_id,
'product_id': move_line.product_id.id,
'account_id': account_id,
'price_unit': price_unit,
'discount': discount,
'quantity': move_line.product_uos_qty or move_line.product_qty,
'invoice_line_tax_id': [(6, 0, tax_ids)],
'account_analytic_id': account_analytic_id,
}, context=context)
self._invoice_line_hook(cursor, user, move_line, invoice_line_id)
Поле invoice_line_tax_id
является отношением многие-ко-многим, а (6, 0, tax_ids)
означает замену любых существующих записей на записи в tax_ids
. Поскольку вы звоните create()
, заменить нечего.
Полный список параметров приведен в документации для класса osv .
Для поля многие из многих ожидается список кортежей. Вот список принятых кортежей с соответствующей семантикой
(0, 0, { values })
ссылка на новую запись, которую необходимо создать с данным словарем значений
(1, ID, { values })
обновить связанную запись с id = ID (записать значения на ней)
(2, ID)
удалить и удалить связанную запись с id = ID (вызывает unlink по ID, которая полностью удалит объект, а также ссылку на него)
(3, ID)
вырезать ссылку на связанную запись с id = ID (удалить связь между двумя объектами, но не удаляет сам целевой объект)
(4, ID)
ссылка на существующую запись с id = ID (добавляет связь)
(5)
отменить связь всех (например, используя (3, ID) для всех связанных записей)
(6, 0, [IDs])
заменить список связанных идентификаторов (например, используя (5) затем (4, ID) для каждого идентификатора в списке идентификаторов)