Openerp 使用onchange(Odoo)插入列表寄存器

Openerp 使用onchange(Odoo)插入列表寄存器,openerp,onchange,odoo-8,Openerp,Onchange,Odoo 8,我有这些类,我想在基类中添加树状视图格式的基类字段。 我需要在基类中执行一个onchange函数,在选择c_id时,使用c_id.q_id的记录修改基类的添加字段的name字段 我试过: class base(models.Model): _name = 'base' name = fields.Char("Name") c_id = fields.Many2one('base.ch') class base_ch(models.Model): _name =

我有这些类,我想在基类中添加树状视图格式的基类字段。
我需要在基类中执行一个onchange函数,在选择c_id时,使用c_id.q_id的记录修改基类的添加字段的name字段

我试过:

class base(models.Model):
    _name = 'base'

    name = fields.Char("Name")
    c_id = fields.Many2one('base.ch')

class base_ch(models.Model):
    _name = 'base.ch'

    name = fields.Char("Name")
    q_ids = fields.One2many("base.q","c_id")


class base_q(models.Model):
    _name = "base.q"

    name = fields.Char("Name")
    c_id = fields.Many2one('base.ch',"Basec")


class base_h(models.Model):
    _name = "base.h"

    name = fields.Char("Name")
    select = fields.Selection([('a', 'A'), ('b', 'B')], "select")
    desc = fields.Char("Desc")
但它不起作用

(6,0,[ID])将获取ID列表

尝试以下代码

@api.onchange('ch_id')
def onchange_ch(self):
    if self.ch_id.q_ids:
        self.one2manyfield.name = [(6, 0, self.ch_id.q_ids)]
        #also with-> self.one2manyfield = [(6, 0, self.ch_id.q_ids)]
(6,0,[ID])将获取ID列表

尝试以下代码

@api.onchange('ch_id')
def onchange_ch(self):
    if self.ch_id.q_ids:
        self.one2manyfield.name = [(6, 0, self.ch_id.q_ids)]
        #also with-> self.one2manyfield = [(6, 0, self.ch_id.q_ids)]

这就是有效的功能

@api.onchange('ch_id')
def onchange_ch(self):
    if self.ch_id and self.ch_id.q_ids:
        one2manyfield = [(6, 0, self.cht_id.q_ids.ids)]

这就是有效的功能

@api.onchange('ch_id')
def onchange_ch(self):
    if self.ch_id and self.ch_id.q_ids:
        one2manyfield = [(6, 0, self.cht_id.q_ids.ids)]

在base上创建一个One2many字段来base_h和onchange我尝试了两种方法。1.-(self.one2many_字段=self.c_id.q_id)和2.-(self.one2many_字段=[(6,0,self.c_id.q_id)])在一个one2many字段的基础上创建一个based_h字段,一旦更改,我尝试了两件事。1.-(self.one2many_字段=self.c_id.q_id)和2.-(self.one2many_字段=[(6,0,self.c_id.q_id)])