gpt4 book ai didi

odoo - 在 onchange 中将 one2many 填充到 one2many 中

转载 作者:行者123 更新时间:2023-12-02 16:04:52 25 4
gpt4 key购买 nike

使用 on_change 方法,我尝试使用 (0,0, {list value} 的概念将默认值发送到 one2many 字段;即使在那里它也工作正常,但在 one2many 内部还有一个 one2many 字段,我将还必须发送值来实现在我的代码中相同的概念(0,0,{列表值},但我没有获得成功。

你能帮我吗?

附上我的代码片段

class hc(models.Model):
_name = 'hc'
laboratorios_ids = fields.One2many(
string='Laboratorios', comodel_name='resullab',
inverse_name='hc_id')

def cargar_pool_labs(self):
labs = []
pool = self.env['mymodel'].sudo().search([])
for laboratorio in pool:
analitos = [(0, 0, {'analito': line.analito,
'resultado': line.resultado ,
'resultado2': line.resultado2 ,
'unidades': line.unidades })
for line in laboratorio.analitos_ids]
labs.append((0,0,{
'nombre_examen' : laboratorio.nombre_examen,
'cups' : laboratorio.cups,
'laboratorio_id': laboratorio.laboratorio_id,
'analitos_ids' : analitos
}))
self.laboratorios_ids = labs

注意:analitos_ids 字段是 labatorios_ids 字段内的 one2many 字段,该字段也是 one2many。

其他型号结构

class resullab(models.Model):
_name = 'resullab'
analitos_ids = fields.One2many('analito','laboratorio_id',
'Analitos Lab', ondelete='cascade')

class labs_analito(models.Model):
_name = 'analito'
laboratorio_id = fields.Many2one('laboratorios', 'Lab Parent')

感谢您的帮助!

最佳答案

我在这里看到的唯一原因是analitos中缺少many2one引用。这个'analitos_ids':analitos指的是必须指定记录id的many2one模型。

def cargar_pool_labs(self):
labs = []
pool = self.env['mymodel'].sudo().search([])
for laboratorio in pool:
analitos = [(0, 0, {'analito': line.analito, 'resultado': line.resultado , 'resultado2': line.resultado2 , 'unidades': line.unidades, }) for line in laboratorio.analitos_ids]
labs.append((0,0,{'nombre_examen' : laboratorio.nombre_examen,
'cups' : laboratorio.cups, 'laboratorio_id': laboratorio.laboratorio_id.id, 'analitos_ids' : analitos}))
self.laboratorios_ids = labs

还有一件事,many2one 引用必须是 id 而不是对象。在您的代码中,它是一个对象而不是 ID。

'laboratorio_id': laboratorio.laboratorio_id.id

Solution:

The many2one field 'hc_id' in resullab model is missing.

'hc_id' : self.id #(here the id of 'hc' model required).

analitos = [(0, 0, {'hc_id': id of resullab_object.id})]

这可能对你有帮助。

Filling default value for one2many model

关于odoo - 在 onchange 中将 one2many 填充到 one2many 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44960839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com