заполнение множества значений

Чтобы заполнить или манипулировать полем one2many или many2many соответствующими значениями (записями), вам необходимо использовать специальную команду, как указано ниже.

Odoo 15.0+

First import fields

from odoo import fields
# or Command directly:
# from odoo.fields import Command

Then assign list of following commands to a x2many field:

  • fields.Command.create(values)
  • fields.Command.update(id, values)
  • fields.Command.delete(id)
  • fields.Command.unlink(id)
  • fields.Command.link(id)
  • fields.Command.clear()
  • fields.Command.set(ids)

Based on https://github.com/odoo/odoo/blob/84f89d6ff887e750ea79656328362333cfce27fd/odoo/fields.py#L2868-L2982

Odoo 14.0-

Этот формат представляет собой список триплетов, выполняемых последовательно, где каждый триплет является командой для выполнения на множестве записей. Не все команды применяются во всех ситуациях. Возможные команды:

  • ** (0, _, значения) ** добавляет новую запись, созданную из предоставленного ** значения ** dict.
  • ** (1, id, значения) ** обновляет существующую запись id ** id ** значениями в ** значениях **. Не может использоваться в ~ .create.
  • ** (2, id, _) ** удаляет запись id ** id ** из набора, а затем удаляет ее (из базы данных). Не может использоваться в ~ .create.
  • ** (3, id, _) ** удаляет запись id ** id ** из набора, но не удаляет ее. Не может использоваться на ~ openerp.fields.One2many. Не может использоваться в ~ .create.
  • ** (4, id, _) ** добавляет существующую запись id ** id ** к набору. Не может использоваться на ~ openerp.fields.One2many.
  • ** (5, _, _) ** удаляет все записи из набора, что эквивалентно явному использованию команды ** 3 ** для каждой записи. Не может использоваться на ~ openerp.fields.One2many. Не может использоваться в ~ .create.
  • ** (6, _, ids) ** заменяет все существующие записи в наборе на список ** ids **, что эквивалентно использованию команды ** 5 **, за которой следует команда ** 4 ** для каждого ** id ** in ** id **. Не может использоваться на ~ openerp.fields.One2many.

Примечание

Значения, помеченные как ** _ ** в приведенном выше списке, игнорируются и могут быть чем угодно, обычно ** 0 ** или ** False **.

Based on https://github.com/odoo/odoo/blob/14.0/odoo/models.py