概要
在Odoo中,有种写法用于操作 one2many
或 many2many
字段时,描述如何在数据库中创建、更新或删除相关记录。具体而言,这是一种命令格式,被称为 "commands" 或 "special command tuples",用于 one2many
和 many2many
字段。
使用场景:主要用在主表数据跟子表数据同时处理的时候。
内容
常见例子
或者多条
result = models.execute_kw(db, uid, password, 'res.partner', 'write', [
[46],
{
'name': "新新东方厨师2",
'user_id': 8,
'child_ids': [
(0, 0, {'name': '新新东方厨师4'}),
(0, 0, {'name': '新新东方厨师5'}),
(0, 0, {'name': '新新东方厨师6'}),
]
}
])
格式说明
第一个参数:操作code,
第二个参数:数据主键id/0/动态id/(充当占位符),
第三个参数:记录的字段和值
(0, 0, {'product_id': 1, 'quantity': 10}), # 创建新记录 (1, 42, {'quantity': 20}), # 更新 ID 为 42 的记录 (2, 43, False), # 删除 ID 为 43 的记录 (3, 44, False), # 解除与 ID 为 44 的记录的关联 (4, 45, False), # 将 ID 为 45 的记录添加到关联中 (5, 0, 0), # 清空所有关联记录 (6, 0, [46, 47]) # 用 ID 为 46 和 47 的记录替换所有现有记录
小结
多写多敲多思考,毕竟,知己知彼才能看懂源码。
Tip:本人才学尚浅,如有纰漏,还请不吝赐教!