使用Odoo从Mysql填充选择字段

时间:2017-09-26 14:36:48

标签: python mysql openerp

我想用从MySQL select语句中检索的值填充Odoo中的fields.Selection。 我尝试在数组中添加select resultset的值,并将此数组返回到目标字段。但是我没有取得好成绩,我收到了一个'列表'对象没有属性' get'我调用onchange_Model函数时出错。 这是我的Python代码:

mydb = MySQLdb.connect('host','user','pass','DB',cursorclass=MySQLdb.cursors.DictCursor)
cursor=mydb.cursor()

    marca = fields.Selection([('a','A'),('b','B')])

                @api.onchange('marca')
                def onchange_Model(self):

                        modellist=[]

                        q = self.cursor.execute("SELECT field1,field2 FROM Table WHERE field1 LIKE '%s' GROUP BY field1"%(self.marca))
                        res = self.cursor.fetchall()
                        for row in res:
                            modellist.append((str(row["field1"]),str(row["field2"])))
                        return modellist

    models = fields.Selection(selection='onchange_Model')

我的XML行对应于' Marca'和'模型'字段:

<field name="marca" widget="selection" on_change="1"/>
<field name="model" widget="selection" on_change="1"/>

还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

更改选择值是不可能的(因为选择值对于您使用它们的所有模型都是静态的和通用的。)

一个好方法是创建一个新模型并使用域过滤器进行过滤