odoo开发笔记 -- 多对多字段追加数据

正常赋值操作:

(以某个模型对象的附件为例)

xx你的模型_model_obj.information_attachment_ids = [(6, 0, attach_ids)]

其中,attach_ids为附件对象id列表。

追加更新操作:

 直接追加方式,没有找到;间接实现,每次更新前,去查询附件模型中res_model和res_id;

例如:

    for dec_obj_id in xxx.xx你的模型对象_id_list:
        = self.env['ir.attachment'].search([('res_model', '=', 'xxx.xx你的模型名'), ('res_id', '=', dec_obj_id)])
        attach_ids = []
        if len(dec_attach_list_obj) > 0:
            for attach_obj in xx你的模型关联的附件_list_obj:
                attach_ids.append(attach_obj.id)
        xx你的模型名_model_obj = self.env['xxx.xx你的模型'].search([('id', '=', dec_obj_id)])
        if len(attach_ids) > 0:
            xx你的模型名_model_obj.information_attachment_ids = [(6, 0, attach_ids)]

 多对多字段其他基本操作: 

CREATE = lambda values: (0, False, values) // 例:[(0, 0, new_ids)] 创建
UPDATE = lambda id, values: (1, id, values) // 例:[(1, old_id, new_id)] 更新
DELETE = lambda id: (2, id, False) // 例:[(2, old_id, False)] 删除
FORGET = lambda id: (3, id, False) // 例:[(3, old_id, False)] 断开链接
LINK_TO = lambda id: (4, id, False) // 例:[(4, old_id, False)] 链接
DELETE_ALL = lambda: (5, False, False) // 例:[(5, False, False)] 删除全部
REPLACE_WITH = lambda ids: (6, False, ids) // 例:[(6, False, new_ids)] 替换/更新

 

posted @ 2018-06-27 11:37  hello-Jesson  阅读(2085)  评论(2编辑  收藏  举报