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)] 替換/更新

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM