Odoo 10 - onchange 函数

Odoo 10 - Functions with onchange

我来求助于完成一个功能,可以让你select一个学校等级按照一个机构。我不知道要升级到我的最后一行代码。目前,选择的 id 是我的第一个录音。现在,我想要比较的第一个元素的 id。谢谢

@api.onchange('school_name_id')
def _retrieve_grade_id(self):
    if self.school_name_id:
        records = self.env['horanet.school.grade'].search([])
        for rec in records:
            if rec.name:
                level = rec.name
                level = level.split()[-1]
                print level
                if level in self.school_name_id.name:
                    print "Il y a un mot trouvé"
                    self.school_level_id = self.env['horanet.school.grade'].search([], limit=1).id

只需替换最后一行。来自:

self.school_level_id = self.env['horanet.school.grade'].search([], limit=1).id

为此:

self.school_level_id = rec.id
break

添加了break以防止发现的第一个级别被另一个结果替换

海尼翁,

首先考虑基于 'id' 而不是 'name' 的函数代码。因为 name 可能是多个但 id 不是。另外我认为问题在你的行 'if level in self.school_name_id.name:',它可能与等号(==)比较来签名。