2

我有一个 one2many 计算字段,我还希望用户能够向其中添加新的记录行。我向它添加了一个反向字段,但它唯一要做的就是允许修改已经存在的记录

@api.one
def accumulate_files(self):
    documents = self.env['document.customer']
    document_gotten = documents.search([('name','=', self.name)])
    for docs in document_gotten:
        self.res_line_ids |= docs.customer_line_ids

@api.one      
def edit_accumulate_files(self):
    documents = self.env['document.customer']
    for lines in documents.customer_line_ids:
        lines.write(self.res_line_ids)
4

1 回答 1

1

我做了一个解决方法,不知道如何在新 api 中以反向方法获取 one2many 字段的值,就像在旧 api 中一样。但是它对我有用

    @api.multi
    def _save_telefone(self):
        for partner in self:
            for phone in partner.phone_number_ids:
                try:
                    # write on exisiting record
                    int(phone.id)
                    # write all possible values
                    phone.write({'partner_id': partner.id})

                except:
                    # create new record with all possible values
                    phone.create({
                        'partner_id': partner.id,
                        'type_id': phone.type_id.id,
                        'status_id': phone.status_id.id,
                        'sequence': phone.sequence,
                        'graph_value': phone.graph_value,
                        'name': phone.name,
                    })

            return True

基本上,如果它不存在,则创建一个记录,否则写在它上面。如何知道数据库中是否存在记录?如果 ID 是整数,则它已经存在,否则它将具有类似于“odoo.model.NewID”的 ID,这意味着尚未分配 ID,但记录仍在内存中。

于 2016-10-20T22:19:34.090 回答