将附件从one2many字段复制到另一个one2many odoo 10

时间:2018-07-17 06:27:27

标签: python attachment odoo-10

我讨厌根据id将附件从一个域复制到另一个域。写命令是否有效???以下代码无法正常工作。

existing_documents = self.env['document.product.verify'].search([('docs_id', '=', self.partner_id.id)])
for record1 in self.product_line:
    for record2 in existing_documents:
        if record1.documents_required_id.id == record2.documents_required_id.id:
            print '*****************DOCUMENT EXISTS******************'
            record1.write({'attachments': record2.attachments})
            print '***************records***************', record1.id, record2.id
            print record1.attachments, record2.attachments

2 个答案:

答案 0 :(得分:2)

使用它来更新/插入/删除one2many字段的数据:

(0、0,{值})链接到需要使用给定值字典创建的新记录

(1,ID,{值})更新ID = ID(在其上写入 values )的链接记录

(2,ID)删除并删除ID = ID的链接记录(调用ID上的取消链接,这将完全删除对象以及指向该对象的链接)

(3,ID)剪切到id = ID的链接记录的链接(删除两个对象之间的关系,但不删除目标对象本身)

(4,ID)链接到ID = ID(添加关系)的现有记录

(5)取消所有链接(例如对所有链接的记录使用(3,ID))

(6,0,[ID]] 替换链接的ID列表(例如对ID列表中的每个ID分别使用(5)然后是(4,ID))

答案 1 :(得分:0)

当Nitin感到惊讶时,以下代码起作用了。

    existing_documents = self.env['document.product.verify'].search([('docs_id', '=', self.partner_id.id)])
    for record1 in self.product_line:
        for record2 in existing_documents:
            if record1.documents_required_id.id == record2.documents_required_id.id:
                hoh1 = (0, 0, {'documents_required_id': record1.documents_required_id.id,
                               'attachments': record2.attachments,
                               'file_name': record2.file_name})
                result_new.append(hoh1)
                break
            else:
                hoh1 = (0, 0, {'documents_required_id': record1.documents_required_id.id})
                result_new.append(hoh1)
                break
    self.update({'product_line': result_new})