python - 使用 Odoo 从 Mysql 填充选择字段

标签 python mysql openerp

我想用从 MySQL select 语句检索的值填充 Odoo 中的 fields.Selection。 我尝试在数组中添加 select resultset 的值,并将该数组返回到目标字段。但是我没有好的结果,当我调用 onchange_Model 函数时,我收到一个“list”对象没有属性“get”的错误。 这是我的 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”和“Model”字段:

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

还有其他方法吗?

最佳答案

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

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

关于python - 使用 Odoo 从 Mysql 填充选择字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46429392/

相关文章:

python - 骰子类别、面数

Python - 如何录制系统音频(扬声器的输出)?

python - 收集雨水的时间复杂度

php - 当每行有多个用逗号分隔的数据时,如何计算各行的值总数?

forms - 如何在 Openerp/Odoo 中使用自定义按钮保存表单数据

json - jsonrequest 和 httprequest 有什么区别?

python - 存储出勤数据的最有效或最有用的方法是什么?

mysql - 如果有子查询,则未知连接列

mysql - 在 SQL 查询中添加 365 天或年 - MOODLE

python-2.7 - 是否可以在 Openerp 中显示同一对象的多个表单 View 或 TreeView ?