• 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)] 替换/更新
  • 相关阅读:
    Oracle触发器用法及介绍
    连接mysql用mysql_connect不能连接
    中标麒麟上安装配置达梦数据库7
    (转)全局变量和局部变量区别
    DSP编程与调试总结
    SERCOS总线程序相关
    C编程小结1
    C语言编程的一些小总结
    【转】#define 定义别名和 typedef 声明类型的区别
    DSP开发程序相关问题总结
  • 原文地址:https://www.cnblogs.com/hellojesson/p/9233157.html
Copyright © 2020-2023  润新知